#REFACTORING
authorStefan Vogel <sv@exept.de>
Mon, 14 Mar 2016 18:47:20 +0100
changeset 19363 47bb171b4e69
parent 19362 dd6ee6342985
child 19364 4bf0b2b33b65
#REFACTORING class: FileStream changed: #newTemporaryIn:nameTemplate: use characters as random component
FileStream.st
--- a/FileStream.st	Mon Mar 14 18:47:07 2016 +0100
+++ b/FileStream.st	Mon Mar 14 18:47:20 2016 +0100
@@ -447,48 +447,48 @@
     |nameString random prevRandom prevNameString newTempFilename stream|
 
     [
-	prevRandom := random.
-	prevNameString := nameString.
+        prevRandom := random.
+        prevNameString := nameString.
 
-	"Use random numbers in order to improve the security
-	 by making the generated names less predictable"
-	[
-	    random := RandomGenerator new nextInteger.
-	] doWhile:[random = prevRandom].
+        "Use random numbers in order to improve the security
+         by making the generated names less predictable"
+        [
+            random := RandomGenerator nextLettersOrDigits:4.
+        ] doWhile:[random = prevRandom].
 
-	nameString := template bindWith:(OperatingSystem getProcessId) with:random.
+        nameString := template bindWith:(OperatingSystem getProcessId) with:random.
 
-	aDirectoryOrNil isNil ifTrue:[
-	    newTempFilename := nameString.
-	] ifFalse:[
-	    newTempFilename := aDirectoryOrNil asFilename constructString:nameString.
-	].
+        aDirectoryOrNil isNil ifTrue:[
+            newTempFilename := nameString.
+        ] ifFalse:[
+            newTempFilename := aDirectoryOrNil asFilename constructString:nameString.
+        ].
 
-	[
-	    stream := self open:newTempFilename withMode:#(CREATE_NEW GENERIC_READ_WRITE).
-	] on:OpenError do:[:ex|
-	   ex errorCategory ~~ #existingReferentSignal ifTrue:[
-		"some fundamental error, raise exception"
-		ex reject.
-	    ].
-	    prevNameString = nameString ifTrue:[
-		"no more names - probably a bad template"
-		ex reject.
-	    ].
-	    "file exists, retry another one"
-	].
+        [
+            stream := self open:newTempFilename withMode:#(CREATE_NEW GENERIC_READ_WRITE).
+        ] on:OpenError do:[:ex|
+           ex errorCategory ~~ #existingReferentSignal ifTrue:[
+                "some fundamental error, raise exception"
+                ex reject.
+            ].
+            prevNameString = nameString ifTrue:[
+                "no more names - probably a bad template"
+                ex reject.
+            ].
+            "file exists, retry another one"
+        ].
     ] doWhile:[
-	stream isNil and:[prevNameString ~= nameString]   "/ if namestring didn't change, the template is bad
+        stream isNil and:[prevNameString ~= nameString]   "/ if namestring didn't change, the template is bad
     ].
     ^ stream
 
     "temp files in '/tmp':
 
-	FileStream newTemporaryIn:'/tmp' asFilename nameTemplate:'foo%1_%2'
+        FileStream newTemporaryIn:'/tmp' asFilename nameTemplate:'foo%1_%2'
 
      This must fail on the second try:
-	FileStream newTemporaryIn:'/tmp' asFilename nameTemplate:'foo'
-	FileStream newTemporaryIn:'c:\temp' asFilename nameTemplate:'foo'
+        FileStream newTemporaryIn:'/tmp' asFilename nameTemplate:'foo'
+        FileStream newTemporaryIn:'c:\temp' asFilename nameTemplate:'foo'
     "
 
     "temp files somewhere