Nicolas Cellier uploaded a new version of SMBase to project The Trunk:
http://source.squeak.org/trunk/SMBase-nice.143.mcz==================== Summary ====================
Name: SMBase-nice.143
Author: nice
Time: 3 March 2020, 8:25:18.229606 pm
UUID: 8cd650f5-1462-4f4e-b81f-ec3e4a963249
Ancestors: SMBase-nice.142, SMBase-tpr.141
Merge 5.2 SMBase-tpr.141 which did not find its way to 5.3
=============== Diff against SMBase-nice.142 ===============
Item was changed:
----- Method: SMSqueakMap>>loadFullFrom: (in category 'private') -----
+ loadFullFrom: aServerName
+ "Contact the SqueakMap at aServerName, building the the url for this version and load a full map from scratch.
+ Allow several retries in case of net slowness etc."
+ | url zipped attempts mapContents |
+ url := '
http://' , aServerName , '/loadgz?mapversion=' , SMSqueakMap version , '&checkpoint=' , checkpointNumber asString.
+ attempts := 0.
- loadFullFrom: aServerName
- "Contact the SqueakMap at the url <aSqueakMapUrl>
- and load a full map from scratch."
+ [attempts := attempts + 1.
+ zipped := HTTPSocket httpGet: url.
+ zipped isString
+ ifTrue: ["awful legacy way to detect net error - use a proper technique
+ when the httpsocket can be replaced with a webclient. For now, raise a generic exception"
+ NetworkError signal]]
+ on: NetworkError
+ do: [:ex |
+ attempts >= 3
+ ifTrue: [self halt: 'Unable to load SqueakMap map update after ' , attempts asString , ' attempts'].
+ ex retry].
+
+ mapContents := zipped contents.
+ ((self checkVersion: mapContents)
+ and: [mapContents ~= 'UPTODATE'])
+ ifTrue: [self saveCheckpoint: mapContents.
+ self reload]!
- | url zipped |
- url := '
http://', aServerName, '/loadgz?mapversion=', SMSqueakMap version, '&checkpoint=', checkpointNumber asString.
- Transcript show: 'Fetch: ', (Time millisecondsToRun: [ zipped := (HTTPSocket httpGet: url) contents]) asString, ' ms';cr.
- Transcript show: 'Size: ', zipped size asString, ' bytes';cr.
- ((self checkVersion: zipped) and: [zipped ~= 'UPTODATE'])
- ifTrue:[
- Transcript show: 'Save checkpoint to disk: ', (Time millisecondsToRun: [
- self saveCheckpoint: zipped]) asString, ' ms';cr.
- Transcript show: 'Full reload from checkpoint: ', (Time millisecondsToRun: [
- self reload]) asString, ' ms';cr.]!