Mantis Bugtracker
  

Viewing Issue Simple Details Jump to Notes ] View Advanced ] Issue History ] Print ]
ID Category Severity Reproducibility Date Submitted Last Update
0006434 [Squeak] Files minor have not tried 04-20-07 22:29 02-06-11 23:48
Reporter johnmci View Status public  
Assigned To cdegroot
Priority high Resolution fixed  
Status closed   Product Version
Summary 0006434: nil does not understand sameAs: in StandardFileStream class>>retryWithGC:until:forFileNamed:
Description VM: Mac OS - a SmalltalkImage
Image: Squeak3.8.1 [latest update: 6747]

SecurityManager state:
Restricted: false
FileAccess: true
SocketAccess: true
Working Dir /Users/mauriziopaoluzi/Applications/Sophie.app/Contents/Resources
Trusted Dir /Users/mauriziopaoluzi/Applications/Sophie.app/Contents/Resources
Untrusted Dir /foobar/tooBar/forSqueak/bogus/

UndefinedObject(Object)>>doesNotUnderstand:
    Receiver: nil
    Arguments and temporary variables:
        aMessage: sameAs: '/private/var/tmp/folders.501/TemporaryItems/SophieTemp/7pqobzch7up8b9k10floz52le/xmlData.xml'
    Receiver's instance variables:
nil

[] in StandardFileStream class>>retryWithGC:until:forFileNamed: {[:file | file name sameAs: fullName]}
    Arguments and temporary variables:
        execBlock: [] in MultiByteFileStream(StandardFileStream)>>open:forWrite: {[self primOpen: f writable: writeMode]}
        testBlock: [] in MultiByteFileStream(StandardFileStream)>>open:forWrite: {[:id | id notNil]}
        fullName: '/private/var/tmp/folders.501/TemporaryItems/SophieTemp/7pqobzch7up8b9k10floz52le/xmlData.xml'
        blockValue: nil
        foundIt: nil
        file: MultiByteFileStream: '/Users/mauriziopaoluzi/Applications/Sophie.app/Contents/Resources/resources/extensions/dialogs/xul/dialogokcancel.xml'

[] in Array(Collection)>>anySatisfy: {[:t2 | (t1 value: t2) ifTrue: [^ true]. nil]}
    Arguments and temporary variables:
        t1: [] in StandardFileStream class>>retryWithGC:until:forFileNamed: {[:file | file name sameAs: fullName]}
        t2: MultiByteFileStream: '/Users/mauriziopaoluzi/Applications/Sophie.app/Contents/Resources/resources/extensions/dialogs/xul/dialogokcancel.xml'

Array(SequenceableCollection)>>do:
    Receiver: #(MultiByteFileStream: '/Users/mauriziopaoluzi/Applications/Sophie.app/Contents/Resources/resources/extensions/dialogs/xul/dialogokcancel.xml' MultiByteFileStream: '/private/tmp/SophieTutorialNumberOne/As We May Think TUTORIAL WORKBOOK.spbf/' MultiByteFileStream: '/Users/mauriziopaoluzi/Library/Application Support/Sophie/library/Sophie NoteBook.spbf/SophieBook.spb' MultiByteFileStream: '/private/tmp/SophieTutorialNumberOne/As We May Think TUTORIAL WORKBOOK.spbf/SophieBook.spb' MultiByteFileStream: '/Users/mauriziopaoluzi/Applications/Sophie.app/Contents/Resources/sophie.changes')
    Arguments and temporary variables:
        t1: [] in Array(Collection)>>anySatisfy: {[:t2 | (t1 value: t2) ifTrue: [^ true]. nil]}
        t2: 1
        t3: 5
    Receiver's instance variables:
#(MultiByteFileStream: '/Users/mauriziopaoluzi/Applications/Sophie.app/Contents/Resources/resources/extensions/dialogs/xul/dialogokcancel.xml' MultiByteFileStream: '/private/tmp/SophieTutorialNumberOne/As We May Think TUTORIAL WORKBOOK.spbf/' MultiByteFileStream: '/Users/mauriziopaoluzi/Library/Application Support/Sophie/library/Sophie NoteBook.spbf/SophieBook.spb' MultiByteFileStream: '/private/tmp/SophieTutorialNumberOne/As We May Think TUTORIAL WORKBOOK.spbf/SophieBook.spb' MultiByteFileStream: '/Users/mauriziopaoluzi/Applications/Sophie.app/Contents/Resources/sophie.changes')

Array(Collection)>>anySatisfy:
    Receiver: #(MultiByteFileStream: '/Users/mauriziopaoluzi/Applications/Sophie.app/Contents/Resources/resources/extensions/dialogs/xul/dialogokcancel.xml' MultiByteFileStream: '/private/tmp/SophieTutorialNumberOne/As We May Think TUTORIAL WORKBOOK.spbf/' MultiByteFileStream: '/Users/mauriziopaoluzi/Library/Application Support/Sophie/library/Sophie NoteBook.spbf/SophieBook.spb' MultiByteFileStream: '/private/tmp/SophieTutorialNumberOne/As We May Think TUTORIAL WORKBOOK.spbf/SophieBook.spb' MultiByteFileStream: '/Users/mauriziopaoluzi/Applications/Sophie.app/Contents/Resources/sophie.changes')
    Arguments and temporary variables:
        t1: [] in StandardFileStream class>>retryWithGC:until:forFileNamed: {[:file | file name sameAs: fullName]}
        t2: MultiByteFileStream: '/Users/mauriziopaoluzi/Applications/Sophie.app/Contents/Resources/resources/extensions/dialogs/xul/dialogokcancel.xml'
    Receiver's instance variables:
#(MultiByteFileStream: '/Users/mauriziopaoluzi/Applications/Sophie.app/Contents/Resources/resources/extensions/dialogs/xul/dialogokcancel.xml' MultiByteFileStream: '/private/tmp/SophieTutorialNumberOne/As We May Think TUTORIAL WORKBOOK.spbf/' MultiByteFileStream: '/Users/mauriziopaoluzi/Library/Application Support/Sophie/library/Sophie NoteBook.spbf/SophieBook.spb' MultiByteFileStream: '/private/tmp/SophieTutorialNumberOne/As We May Think TUTORIAL WORKBOOK.spbf/SophieBook.spb' MultiByteFileStream: '/Users/mauriziopaoluzi/Applications/Sophie.app/Contents/Resources/sophie.changes')

StandardFileStream class>>retryWithGC:until:forFileNamed:
    Receiver: StandardFileStream
    Arguments and temporary variables:
        execBlock: [] in MultiByteFileStream(StandardFileStream)>>open:forWrite: {[self primOpen: f writable: writeMode]}
        testBlock: [] in MultiByteFileStream(StandardFileStream)>>open:forWrite: {[:id | id notNil]}
        fullName: '/private/var/tmp/folders.501/TemporaryItems/SophieTemp/7pqobzch7up8b9k10floz52le/xmlData.xml'
        blockValue: nil
        foundIt: nil
        file: MultiByteFileStream: '/Users/mauriziopaoluzi/Applications/Sophie.app/Contents/Resources/resources/extensions/dialogs/xul/dialogokcancel.xml'
    Receiver's instance variables:
        superclass: FileStream
        methodDict: a MethodDictionary(#actAsExecutor->a CompiledMethod (1006) #asHtml->a CompiledMethod (1513) #ascii->a CompiledMethod (1389) #atEnd->a CompiledMethod (2883) #basicNext->a CompiledMethod (1011) #binary->a CompiledMethod (363) #close->a CompiledMethod (2020) #closed->a CompiledMethod (113) #compressFile->a CompiledMethod (2057) #defaultBrowserReadyWait->a CompiledMethod (2063) #directory->a CompiledMethod (2913) #directoryUrl->a CompiledMethod (2458) #ensureOpen->a CompiledMethod (3268) #file->a CompiledMethod (1515) #finalize->a CompiledMethod (65) #findString:->a CompiledMethod (4094) #findStringFromEnd:->a CompiledMethod (3333) #flush->a CompiledMethod (2183) #fullName->a CompiledMethod (3548) #getFileType->a CompiledMethod (3760) #insertLineFeeds->a CompiledMethod (21) #isBinary->a CompiledMethod (3246) #isDirectory->a CompiledMethod (1236) #isReadOnly->a CompiledMethod (3179) #localName->a CompiledMethod (2451) #modificationTime->a CompiledMethod (1158) #name->a CompiledMethod (3655) #next->a CompiledMethod (1447) #next:->a CompiledMethod (2105) #next:into:startingAt:->a CompiledMethod (1822) #next:putAll:startingAt:->a CompiledMethod (2787) #nextPut:->a CompiledMethod (3935) #nextPutAll:->a CompiledMethod (2001) #nextWordsInto:->a CompiledMethod (874) #open->a CompiledMethod (607) #open:forWrite:->a CompiledMethod (1405) #openReadOnly->a CompiledMethod (165) #padToEndWith:->a CompiledMethod (1548) #peek->a CompiledMethod (2941) #peekFor:->a CompiledMethod (1373) #peekLast->a CompiledMethod (612) #position->a CompiledMethod (430) #position:->a CompiledMethod (737) #post:target:url:ifError:->a CompiledMethod (3683) #post:url:ifError:->a CompiledMethod (2247) #primAtEnd:->a CompiledMethod (3513) #primBrowserReady->a CompiledMethod (269) #primClose:->a CompiledMethod (1429) #primCloseNoError:->a CompiledMethod (1953) #primDropRequestFileHandle:->a CompiledMethod (3444) #primDropRequestFileName:->a CompiledMethod (1178) #primFlush:->a CompiledMethod (2709) #primGetPosition:->a CompiledMethod (2603) #pr...etc...
        format: 146
        instanceVariables: #('name' 'fileID' 'buffer1')
        organization: ('open/close' close closed ensureOpen open open:forWrite: openReadOnly reopen)
('properties-setting' asHtml ascii binary getFileType insertLineFeeds isBinary isReadOnly readOnly readWrite setFileTypeToObject)
('access' directory directoryUrl file fullName isDirectory localName name peekFor: printOn: reset size)
('read, write, position' atEnd basicNext compressFile findString: findStringFromEnd: flush next next: next:into:startingAt: next:putAll:startingAt: nextPut: nextPutAll: nextWordsInto: padToEndWith: peek peekLast position position: readInto:startingAt:count: readOnlyCopy setToEnd skip: truncate truncate: upTo: upToEnd verbatim:)
('primitives' primAtEnd: primClose: primCloseNoError: primFlush: primGetPosition: primOpen:writable: primRead:into:startingAt:count: primSetPosition:to: primSize: primSizeNoError: primTruncate:to: primWrite:from:startingAt:count:)
('registry' register unregister)
('finalization' actAsExecutor finalize)
('browser requests' defaultBrowserReadyWait post:target:url:ifError: post:url:ifError: primBrowserReady primURLPost:data:semaIndex: primURLPost:target:data:semaIndex: primURLRequest:semaIndex: primURLRequest:target:semaIndex: primURLRequestDestroy: primURLRequestFileHandle: primURLRequestState: requestURL:target: requestURL:target:ifError: requestURLStream: requestURLStream:ifError: waitBrowserReadyFor:ifFail:)
('dnd requests' primDropRequestFileHandle: primDropRequestFileName: requestDropStream:)
('*Tweak-Hacks' modificationTime)
('*Sophie-System' requestDropStreamWithTranslatedName:)

        subclasses: #(CrLfFileStream MultiByteFileStream)
        name: #StandardFileStream
        classPool: a Dictionary(#Registry->a WeakRegistry(<this WeakRegistry is locked>; spac) )
        sharedPools: nil
        environment: nil
        category: #'Files-Kernel'

MultiByteFileStream(StandardFileStream)>>open:forWrite:
    Receiver: MultiByteFileStream: nil
    Arguments and temporary variables:
        fileName: '/private/var/tmp/folders.501/TemporaryItems/SophieTemp/7pqobzch7up8b9k10floz52le/xmlData.xml'
        writeMode: false
        f: '/private/var/tmp/folders.501/TemporaryItems/SophieTemp/7pqobzch7up8b9k10floz52le/xmlData.xml'
        id: nil
    Receiver's instance variables:
Additional Information We had this error reported in Sophie. It appears that in the following method.

retryWithGC: execBlock until: testBlock forFileNamed: fullName
    
    "See if we have a file with the given name"
    foundIt := Registry keys "hold on strongly for now"
        anySatisfy:[:file| file name sameAs: fullName].


Registry keys return the keys in the weak registry dictionary, and we start iterating over them in the anySatisfy:

Note how that '/Users/mauriziopaoluzi/Applications/Sophie.app/Contents/Resources/resources/extensions/dialogs/xul/dialogokcancel.xml'
is listed in the walkback log when it prints the file block variable then it's not there and we get the nil DNU anySatisfy:
Attached Files  setFileNameBeforeRegister-JMM.1.cs.zip [^] (1,211 bytes) 10-10-07 17:46

- Relationships

- Notes
(0011234 - 52034 - 77777 - 80051 - 80051 - 80051 - 80051)
johnmci
10-02-07 21:10

MessageNotUnderstood: UndefinedObject>>sameAs:
'config2007040901swr'
1 October 2007 1:03:16 pm

VM: Mac OS - a SmalltalkImage
Image: Squeak3.8.1 [latest update: 6747]

SecurityManager state:
Restricted: false
FileAccess: true
SocketAccess: true
Working Dir /Applications/Sophie.app/Contents/Resources
Trusted Dir /Applications/Sophie.app/Contents/Resources
Untrusted Dir /foobar/tooBar/forSqueak/bogus/

UndefinedObject(Object)>>doesNotUnderstand:
    Receiver: nil
    Arguments and temporary variables:
        t1: sameAs: '/private/var/tmp/folders.501/TemporaryItems/SophieTemp/el72lo9rpswy1hwawgv7rhrik/xmlData.xml'
    Receiver's instance variables:
nil

[] in StandardFileStream class>>retryWithGC:until:forFileNamed: {[:t6 | t6 name sameAs: t3]}
    Arguments and temporary variables:
        t1: [] in MultiByteFileStream(StandardFileStream)>>open:forWrite: {[self primOpen: t3 writable: t2]}
        t2: [] in MultiByteFileStream(StandardFileStream)>>open:forWrite: {[:t4 | t4 notNil]}
        t3: '/private/var/tmp/folders.501/TemporaryItems/SophieTemp/el72lo9rpswy1hwawgv7rhrik/xmlData.xml'
        t4: nil
        t5: nil
        t6: MultiByteFileStream: '/Applications/Sophie.app/Contents/Resources/resources/extensions/dialogs/xul/dialogokcancel.xml'

[] in Array(Collection)>>anySatisfy: {[:t2 | (t1 value: t2) ifTrue: [^ true]. nil]}
    Arguments and temporary variables:
        t1: [] in StandardFileStream class>>retryWithGC:until:forFileNamed: {[:t6 | t6 name sameAs: t3]}
        t2: MultiByteFileStream: '/Applications/Sophie.app/Contents/Resources/resources/extensions/dialogs/xul/dialogokcancel.xml'

Array(SequenceableCollection)>>do:
    Receiver: #(MultiByteFileStream: '/Users/travencollins/Desktop/The Triangle Fire.spbf/' MultiByteFileStream: '/Users/travencollins/Library/Application Support/Sophie/library/Sophie NoteBook.spbf/SophieBook.spb' MultiByteFileStream: '/Applications/Sophie.app/Contents/Resources/resources/extensions/dialogs/xul/dialogokcancel.xml' MultiByteFileStream: '/Users/travencollins/Desktop/The Triangle Fire.spbf/SophieBook.spb')
    Arguments and temporary variables:
        t1: [] in Array(Collection)>>anySatisfy: {[:t2 | (t1 value: t2) ifTrue: [^ true]. nil]}
        t2: 3
        t3: 4
    Receiver's instance variables:
#(MultiByteFileStream: '/Users/travencollins/Desktop/The Triangle Fire.spbf/' MultiByteFileStream: '/Users/travencollins/Library/Application Support/Sophie/library/Sophie NoteBook.spbf/SophieBook.spb' MultiByteFileStream: '/Applications/Sophie.app/Contents/Resources/resources/extensions/dialogs/xul/dialogokcancel.xml' MultiByteFileStream: '/Users/travencollins/Desktop/The Triangle Fire.spbf/SophieBook.spb')

Array(Collection)>>anySatisfy:
    Receiver: #(MultiByteFileStream: '/Users/travencollins/Desktop/The Triangle Fire.spbf/' MultiByteFileStream: '/Users/travencollins/Library/Application Support/Sophie/library/Sophie NoteBook.spbf/SophieBook.spb' MultiByteFileStream: '/Applications/Sophie.app/Contents/Resources/resources/extensions/dialogs/xul/dialogokcancel.xml' MultiByteFileStream: '/Users/travencollins/Desktop/The Triangle Fire.spbf/SophieBook.spb')
    Arguments and temporary variables:
        t1: [] in StandardFileStream class>>retryWithGC:until:forFileNamed: {[:t6 | t6 name sameAs: t3]}
        t2: MultiByteFileStream: '/Applications/Sophie.app/Contents/Resources/resources/extensions/dialogs/xul/dialogokcancel.xml'
    Receiver's instance variables:
#(MultiByteFileStream: '/Users/travencollins/Desktop/The Triangle Fire.spbf/' MultiByteFileStream: '/Users/travencollins/Library/Application Support/Sophie/library/Sophie NoteBook.spbf/SophieBook.spb' MultiByteFileStream: '/Applications/Sophie.app/Contents/Resources/resources/extensions/dialogs/xul/dialogokcancel.xml' MultiByteFileStream: '/Users/travencollins/Desktop/The Triangle Fire.spbf/SophieBook.spb')

StandardFileStream class>>retryWithGC:until:forFileNamed:
    Receiver: StandardFileStream
    Arguments and temporary variables:
        t1: [] in MultiByteFileStream(StandardFileStream)>>open:forWrite: {[self primOpen: t3 writable: t2]}
        t2: [] in MultiByteFileStream(StandardFileStream)>>open:forWrite: {[:t4 | t4 notNil]}
        t3: '/private/var/tmp/folders.501/TemporaryItems/SophieTemp/el72lo9rpswy1hwawgv7rhrik/xmlData.xml'
        t4: nil
        t5: nil
        t6: MultiByteFileStream: '/Applications/Sophie.app/Contents/Resources/resources/extensions/dialogs/xul/dialogokcancel.xml'
    Receiver's instance variables:
        superclass: FileStream
        methodDict: a MethodDictionary(#actAsExecutor->a CompiledMethod (1006) #asHtml->a CompiledMethod (1513) #ascii->a CompiledMethod (1389) #atEnd->a CompiledMethod (2883) #basicNext->a CompiledMethod (1011) #binary->a CompiledMethod (363) #close->a CompiledMethod (2020) #closed->a CompiledMethod (113) #compressFile->a CompiledMethod (2057) #defaultBrowserReadyWait->a CompiledMethod (2063) #directory->a CompiledMethod (2913) #directoryUrl->a CompiledMethod (2458) #ensureOpen->a CompiledMethod (3268) #file->a CompiledMethod (1515) #finalize->a CompiledMethod (65) #findString:->a CompiledMethod (4094) #findStringFromEnd:->a CompiledMethod (3333) #flush->a CompiledMethod (2183) #fullName->a CompiledMethod (3548) #getFileType->a CompiledMethod (3760) #insertLineFeeds->a CompiledMethod (21) #isBinary->a CompiledMethod (3246) #isDirectory->a CompiledMethod (1236) #isReadOnly->a CompiledMethod (3179) #localName->a CompiledMethod (2451) #modificationTime->a CompiledMethod (1158) #name->a CompiledMethod (3655) #next->a CompiledMethod (1447) #next:->a CompiledMethod (2105) #next:into:startingAt:->a CompiledMethod (1822) #next:putAll:startingAt:->a CompiledMethod (2787) #nextPut:->a CompiledMethod (3935) #nextPutAll:->a CompiledMethod (2001) #nextWordsInto:->a CompiledMethod (874) #open->a CompiledMethod (607) #open:forWrite:->a CompiledMethod (1405) #openReadOnly->a CompiledMethod (165) #padToEndWith:->a CompiledMethod (1548) #peek->a CompiledMethod (2941) #peekFor:->a CompiledMethod (1373) #peekLast->a CompiledMethod (612) #position->a CompiledMethod (430) #position:->a CompiledMethod (737) #post:target:url:ifError:->a CompiledMethod (3683) #post:url:ifError:->a CompiledMethod (2247) #primAtEnd:->a CompiledMethod (3513) #primBrowserReady->a CompiledMethod (269) #primClose:->a CompiledMethod (1429) #primCloseNoError:->a CompiledMethod (1953) #primDropRequestFileHandle:->a CompiledMethod (3444) #primDropRequestFileName:->a CompiledMethod (1178) #primFlush:->a CompiledMethod (2709) #primGetPosition:->a CompiledMethod (2603) #pr...etc...
        format: 146
        instanceVariables: #('name' 'fileID' 'buffer1')
        organization: ('open/close' close closed ensureOpen open open:forWrite: openReadOnly reopen)
('properties-setting' asHtml ascii binary getFileType insertLineFeeds isBinary isReadOnly readOnly readWrite setFileTypeToObject)
('access' directory directoryUrl file fullName isDirectory localName name peekFor: printOn: reset size)
('read, write, position' atEnd basicNext compressFile findString: findStringFromEnd: flush next next: next:into:startingAt: next:putAll:startingAt: nextPut: nextPutAll: nextWordsInto: padToEndWith: peek peekLast position position: readInto:startingAt:count: readOnlyCopy setToEnd skip: truncate truncate: upTo: upToEnd verbatim:)
('primitives' primAtEnd: primClose: primCloseNoError: primFlush: primGetPosition: primOpen:writable: primRead:into:startingAt:count: primSetPosition:to: primSize: primSizeNoError: primTruncate:to: primWrite:from:startingAt:count:)
('registry' register unregister)
('finalization' actAsExecutor finalize)
('browser requests' defaultBrowserReadyWait post:target:url:ifError: post:url:ifError: primBrowserReady primURLPost:data:semaIndex: primURLPost:target:data:semaIndex: primURLRequest:semaIndex: primURLRequest:target:semaIndex: primURLRequestDestroy: primURLRequestFileHandle: primURLRequestState: requestURL:target: requestURL:target:ifError: requestURLStream: requestURLStream:ifError: waitBrowserReadyFor:ifFail:)
('dnd requests' primDropRequestFileHandle: primDropRequestFileName: requestDropStream:)
('*Tweak-Hacks' modificationTime)
('*Sophie-System' requestDropStreamWithTranslatedName:)

        subclasses: #(CrLfFileStream MultiByteFileStream)
        name: #StandardFileStream
        classPool: a Dictionary(#Registry->a WeakRegistry(<this WeakRegistry is locked>; spac) )
        sharedPools: nil
        environment: nil
        category: #'Files-Kernel'

MultiByteFileStream(StandardFileStream)>>open:forWrite:
    Receiver: MultiByteFileStream: nil
    Arguments and temporary variables:
        t1: '/private/var/tmp/folders.501/TemporaryItems/SophieTemp/el72lo9rpswy1hwawgv7rhrik/xmlData.xml'
        t2: false
        t3: '/private/var/tmp/folders.501/TemporaryItems/SophieTemp/el72lo9rpswy1hwawgv7rhrik/xmlData.xml'
        t4: nil
    Receiver's instance variables:


MultiByteFileStream>>open:forWrite:
    Receiver: MultiByteFileStream: nil
    Arguments and temporary variables:
        t1: '/private/var/tmp/folders.501/TemporaryItems/SophieTemp/el72lo9rpswy1hwawgv7rhrik/xmlData.xml'
        t2: false
        t3: nil
    Receiver's instance variables:


MultiByteFileStream class(StandardFileStream class)>>isAFileNamed:
    Receiver: MultiByteFileStream
    Arguments and temporary variables:
        t1: '/private/var/tmp/folders.501/TemporaryItems/SophieTemp/el72lo9rpswy1hwawgv7rhrik/xmlData.xml'
        t2: nil
    Receiver's instance variables:
        superclass: StandardFileStream
        methodDict: a MethodDictionary(#accepts:->a CompiledMethod (1227) #ascii->a CompiledMethod (1533) #bareNext->a CompiledMethod (4061) #basicNext:->a CompiledMethod (1587) #basicNext:into:->a CompiledMethod (1627) #basicNextInto:->a CompiledMethod (3298) #basicNextPut:->a CompiledMethod (392) #basicNextPutAll:->a CompiledMethod (321) #basicPeek->a CompiledMethod (209) #basicPosition->a CompiledMethod (3118) #basicPosition:->a CompiledMethod (2533) #basicReadInto:startingAt:count:->a CompiledMethod (2917) #basicSetToEnd->a CompiledMethod (1297) #basicSkip:->a CompiledMethod (3420) #basicUpTo:->a CompiledMethod (3137) #basicVerbatim:->a CompiledMethod (371) #binary->a CompiledMethod (3) #convertStringFromCr:->a CompiledMethod (1350) #convertStringToCr:->a CompiledMethod (2933) #converter->a CompiledMethod (2049) #converter:->a CompiledMethod (3241) #detectLineEndConvention->a CompiledMethod (297) #doConversion->a CompiledMethod (2772) #fileIn->a CompiledMethod (291) #fileInEncodingName:->a CompiledMethod (1431) #fileOutClass:andObject:->a CompiledMethod (1402) #filterFor:->a CompiledMethod (3844) #lineEndConvention->a CompiledMethod (2067) #lineEndConvention:->a CompiledMethod (805) #next->a CompiledMethod (3236) #next:->a CompiledMethod (3195) #next:innerFor:->a CompiledMethod (832) #nextDelimited:->a CompiledMethod (1905) #nextMatchAll:->a CompiledMethod (3562) #nextPut:->a CompiledMethod (88) #nextPutAll:->a CompiledMethod (3390) #open:forWrite:->a CompiledMethod (3482) #peek->a CompiledMethod (3261) #peekFor:->a CompiledMethod (1285) #reset->a CompiledMethod (1442) #setConverterForCode->a CompiledMethod (3911) #skipSeparators->a CompiledMethod (1041) #skipSeparatorsAndPeekNext->a CompiledMethod (1962) #upTo:->a CompiledMethod (1119) #upToEnd->a CompiledMethod (2035) #wantsLineEndConversion->a CompiledMethod (3135) #wantsLineEndConversion:->a CompiledMethod (1594) )
        format: 152
        instanceVariables: #('converter' 'lineEndConvention' 'wantsLineEndConversion')
        organization: ('accessing' ascii binary converter converter: fileInEncodingName: lineEndConvention lineEndConvention: wantsLineEndConversion:)
('public' next next: nextDelimited: nextMatchAll: nextPut: nextPutAll: peek peekFor: skipSeparators skipSeparatorsAndPeekNext upTo: upToEnd)
('crlf private' bareNext convertStringFromCr: convertStringToCr: detectLineEndConvention doConversion next:innerFor: wantsLineEndConversion)
('private basic' basicNext: basicNext:into: basicNextInto: basicNextPut: basicNextPutAll: basicPeek basicPosition basicPosition: basicReadInto:startingAt:count: basicSetToEnd basicSkip: basicUpTo: basicVerbatim:)
('open/close' open:forWrite: reset)
('remnant' accepts: filterFor:)
('private' setConverterForCode)
('fileIn/Out' fileIn fileOutClass:andObject:)

        subclasses: nil
        name: #MultiByteFileStream
        classPool: a Dictionary(#Cr->$
 #CrLf->'
' #Lf->$
 #LineEndDefault->#lf #LineEndStrings->a Dictionary(#cr->'
' #crlf->'
' #lf->'
' ) #LookAheadCount->2048 )
        sharedPools: nil
        environment: a SystemDictionary(lots of globals)
        category: #'Multilingual-TextConversion'

FileStream class>>isAFileNamed:
    Receiver: FileStream
    Arguments and temporary variables:
        t1: '/private/var/tmp/folders.501/TemporaryItems/SophieTemp/el72lo9rpswy1hwawgv7rhrik/xmlData.xml'
    Receiver's instance variables:
        superclass: ReadWriteStream
        methodDict: a MethodDictionary(#asBinaryOrTextStream->a CompiledMethod (591) #asUrl->a CompiledMethod (3493) #ascii->a CompiledMethod (918) #atEnd->a CompiledMethod (603) #binary->a CompiledMethod (1443) #close->a CompiledMethod (1716) #closed->a CompiledMethod (2023) #contents->a CompiledMethod (621) #contentsOfEntireFile->a CompiledMethod (188) #dataIsValid->a CompiledMethod (2755) #directoryEntry->a CompiledMethod (2496) #edit->a CompiledMethod (1596) #file->a CompiledMethod (3501) #fileIn->a CompiledMethod (366) #fileInObjectAndCode->a CompiledMethod (674) #fileIntoNewChangeSet->a CompiledMethod (594) #flush->a CompiledMethod (2119) #isFileStream->a CompiledMethod (2732) #localName->a CompiledMethod (3697) #longPrintOn:->a CompiledMethod (3834) #longPrintOn:limitedTo:indent:->a CompiledMethod (1348) #mimeType->a CompiledMethod (2420) #mimeTypes->a CompiledMethod (420) #name->a CompiledMethod (3591) #next->a CompiledMethod (1496) #next:->a CompiledMethod (1365) #nextPut:->a CompiledMethod (192) #nextPutAll:->a CompiledMethod (974) #position->a CompiledMethod (722) #position:->a CompiledMethod (3923) #printOn:->a CompiledMethod (3941) #readOnly->a CompiledMethod (2452) #readOnlyStream->a CompiledMethod (2306) #readWrite->a CompiledMethod (1378) #reopen->a CompiledMethod (2302) #reset->a CompiledMethod (697) #setToEnd->a CompiledMethod (1773) #size->a CompiledMethod (3031) #skip:->a CompiledMethod (2144) #text->a CompiledMethod (1204) #truncate:->a CompiledMethod (1766) #uri->a CompiledMethod (2954) #url->a CompiledMethod (226) #viewGZipContents->a CompiledMethod (2496) )
        format: 140
        instanceVariables: #('rwmode')
        organization: ('accessing' contents contentsOfEntireFile directoryEntry mimeTypes next next: nextPut: nextPutAll: size)
('testing' atEnd)
('positioning' position position: reset setToEnd skip: truncate:)
('printing' longPrintOn: longPrintOn:limitedTo:indent: printOn:)
('editing' edit viewGZipContents)
('file open/close' close closed flush reopen)
('file modes' ascii binary readOnly readOnlyStream readWrite text)
('file accessing' asUrl file localName name url)
('fileIn/Out' fileIn fileInObjectAndCode fileIntoNewChangeSet)
('converting' asBinaryOrTextStream)
('remote file compatibility' dataIsValid)
('*network-uri' uri)
('*sophie-resourceManager' isFileStream)
('*Sophie-Persistency' mimeType)

        subclasses: #(StandardFileStream)
        name: #FileStream
        classPool: a Dictionary()
        sharedPools: nil
        environment: nil
        category: nil

SophieResourceStorageFileDirectoryWithFolderAndZipped(SophieResourceStorageFileDirectoryZip)>>metaDataURI
    Receiver: a SophieResourceStorageFileDirectoryWithFolderAndZipped ('3806411e-64a6-4bb4-a85e-b3518326883c')
    Arguments and temporary variables:
        t1: file:///private/var/tmp/folders.501/TemporaryItems/SophieTemp/el72lo9rpswy1hwawgv7rhrik/xmlData.xml [^] [^]
        t2: nil
    Receiver's instance variables:
        rm: a SophieResourceManagerFolderPackage ('3806411e-64a6-4bb4-a85e-b3518326883c')
        deleteOldManifestDataName: nil
        resourceURI: nil
        tempURI: file:///private/var/tmp/folders.501/TemporaryItems/SophieTemp/el72lo9rpswy1hwawgv7rhrik/ [^] [^]
        filesInTempFolder: a Set('xmlData.xml')
        zipfileArchive: a ZipArchive
        zipfileStream: MultiByteFileStream: '/Users/travencollins/Desktop/The Triangle Fire.spbf/SophieBook.spb'
        newOrAlteredFiles: nil

SophieResourceStorageFileDirectoryWithFolderAndZipped(SophieResourceStorageFileDirectory)>>getMetaDataReadStream
    Receiver: a SophieResourceStorageFileDirectoryWithFolderAndZipped ('3806411e-64a6-4bb4-a85e-b3518326883c')
    Arguments and temporary variables:
        t1: nil
        t2: nil
    Receiver's instance variables:
        rm: a SophieResourceManagerFolderPackage ('3806411e-64a6-4bb4-a85e-b3518326883c')
        deleteOldManifestDataName: nil
        resourceURI: nil
        tempURI: file:///private/var/tmp/folders.501/TemporaryItems/SophieTemp/el72lo9rpswy1hwawgv7rhrik/ [^] [^]
        filesInTempFolder: a Set('xmlData.xml')
        zipfileArchive: a ZipArchive
        zipfileStream: MultiByteFileStream: '/Users/travencollins/Desktop/The Triangle Fire.spbf/SophieBook.spb'
        newOrAlteredFiles: nil

SophieResourceStorageFileDirectoryWithFolderAndZipped(SophieResourceStorage)>>readResourceMetadata:
    Receiver: a SophieResourceStorageFileDirectoryWithFolderAndZipped ('3806411e-64a6-4bb4-a85e-b3518326883c')
    Arguments and temporary variables:
        t1: a SophieResourceManagerFolderPackage ('3806411e-64a6-4bb4-a85e-b3518326883c')
        t2: nil
        t3: nil
        t4: nil
    Receiver's instance variables:
        rm: a SophieResourceManagerFolderPackage ('3806411e-64a6-4bb4-a85e-b3518326883c')
        deleteOldManifestDataName: nil
        resourceURI: nil
        tempURI: file:///private/var/tmp/folders.501/TemporaryItems/SophieTemp/el72lo9rpswy1hwawgv7rhrik/ [^] [^]
        filesInTempFolder: a Set('xmlData.xml')
        zipfileArchive: a ZipArchive
        zipfileStream: MultiByteFileStream: '/Users/travencollins/Desktop/The Triangle Fire.spbf/SophieBook.spb'
        newOrAlteredFiles: nil

SophieResourceManagerFolderPackage(SophieResourceManager)>>resourceDictionary
    Receiver: a SophieResourceManagerFolderPackage ('3806411e-64a6-4bb4-a85e-b3518326883c')
    Arguments and temporary variables:

    Receiver's instance variables:
        resourceDictionary: nil
        book: a SophieBook (804) (nil)
        folders: nil
        storageManager: a SophieResourceStorageFileDirectoryWithFolderAndZipped ('3806411e-64a6-4bb4-a85e-b3518326883c')
        masterFolderId: nil
        recursiveLoading: nil
        uuidLookAsideDictionary: nil
        thumbNailCache: nil

SophieResourceManagerFolderPackage(SophieResourceManager)>>book:
    Receiver: a SophieResourceManagerFolderPackage ('3806411e-64a6-4bb4-a85e-b3518326883c')
    Arguments and temporary variables:
        t1: a SophieBook (804) (nil)
    Receiver's instance variables:
        resourceDictionary: nil
        book: a SophieBook (804) (nil)
        folders: nil
        storageManager: a SophieResourceStorageFileDirectoryWithFolderAndZipped ('3806411e-64a6-4bb4-a85e-b3518326883c')
        masterFolderId: nil
        recursiveLoading: nil
        uuidLookAsideDictionary: nil
        thumbNailCache: nil

SophieResourceManagerFolderPackage class(SophieResourceManager class)>>forBook:
    Receiver: SophieResourceManagerFolderPackage
    Arguments and temporary variables:
        t1: a SophieBook (804) (nil)
        t2: a SophieResourceManagerFolderPackage ('3806411e-64a6-4bb4-a85e-b3518326883c')
    Receiver's instance variables:
        superclass: SophieResourceManager
        methodDict: a MethodDictionary(#storageManager->a CompiledMethod (1783) )
        format: 146
        instanceVariables: nil
        organization: ('accessing' storageManager)

        subclasses: nil
        name: #SophieResourceManagerFolderPackage
        classPool: nil
        sharedPools: nil
        environment: a SystemDictionary(lots of globals)
        category: #'Sophie-ResourceManager'

SophieBook>>createFolderStorage
    Receiver: a SophieBook (804) (nil)
    Arguments and temporary variables:

    Receiver's instance variables:
        uuid: a SophieID('3806411e-64a6-4bb4-a85e-b3518326883c')
        id: nil
        spineManager: nil
        mainSpine: nil
        defaultLayoutTemplate: nil
        structureTemplate: nil
        variables: nil
        extent: nil
        bookModel: nil
        timelineManager: nil
        published: nil
        application: SophieApplication
        uuidForLinking: nil
        stickyManager: nil
        preferences: nil
        myEventMap: nil
        resourceManager: nil
        styleLibrary: nil
        templateLibrary: nil
        contentManager: nil
        markerManager: nil
        numberingManager: nil
        uri: file:///Users/travencollins/Desktop/The [^] [^] Triangle Fire.spbf
        eventTriggerManager: nil
        embeddedBooks: nil
        possibleURIForLinking: nil
        scriptManager: nil
        manifest: nil
        possibleManifestNumber: nil
        usageStatistic: nil

SophieBook>>readFromURI:
    Receiver: a SophieBook (804) (nil)
    Arguments and temporary variables:
        t1: file:///Users/travencollins/Desktop/The [^] [^] Triangle Fire.spbf
    Receiver's instance variables:
        uuid: a SophieID('3806411e-64a6-4bb4-a85e-b3518326883c')
        id: nil
        spineManager: nil
        mainSpine: nil
        defaultLayoutTemplate: nil
        structureTemplate: nil
        variables: nil
        extent: nil
        bookModel: nil
        timelineManager: nil
        published: nil
        application: SophieApplication
        uuidForLinking: nil
        stickyManager: nil
        preferences: nil
        myEventMap: nil
        resourceManager: nil
        styleLibrary: nil
        templateLibrary: nil
        contentManager: nil
        markerManager: nil
        numberingManager: nil
        uri: file:///Users/travencollins/Desktop/The [^] [^] Triangle Fire.spbf
        eventTriggerManager: nil
        embeddedBooks: nil
        possibleURIForLinking: nil
        scriptManager: nil
        manifest: nil
        possibleManifestNumber: nil
        usageStatistic: nil

[] in SophieBook class>>fromURI:application: {[t3 readFromURI: t1]}
    Arguments and temporary variables:
        t1: file:///Users/travencollins/Desktop/The [^] [^] Triangle Fire.spbf
        t2: SophieApplication
        t3: a SophieBook (804) (nil)

BlockContext>>ensure:
    Receiver: [] in SophieBook class>>fromURI:application: {[t3 readFromURI: t1]}
    Arguments and temporary variables:
        t1: [] in CursorWithMask(Cursor)>>showWhile: {[t2 show]}
        t2: nil
        t3: nil
    Receiver's instance variables:
        sender: BlockContext>>ensure:
        pc: 42
        stackp: 0
        nargs: 0
        startpc: 39
        home: SophieBook class>>fromURI:application:

CursorWithMask(Cursor)>>showWhile:
    Receiver: ((CursorWithMask
    extent: 16@16
    depth: 1
    fromArray: #(
        2r0
        2r1111111111111100000000000000000
        2r1000000000000100000000000000000
        2r100000000001000000000000000000
        2r10000000010000000000000000000
        2r1110011100000000000000000000
        2r111111000000000000000000000
        2r11110000000000000000000000
        2r11110000000000000000000000
        2r100101000000000000000000000
        2r1000100100000000000000000000
        2r10000110010000000000000000000
        2r100001111001000000000000000000
        2r1000111111110100000000000000000
        2r1111111111111100000000000000000
        2r0)
    offset: -1@-1) setMaskForm: (Form
    extent: 16@16
    depth: 1
    fromArray: #(
        2r11111111111111110000000000000000
        2r11111111111111110000000000000000
        2r11111111111111110000000000000000
        2r11111000000111110000000000000000
        2r1111111111111100000000000000000
        2r111111111111000000000000000000
        2r11111111110000000000000000000
        2r1111111100000000000000000000
        2r1111111100000000000000000000
        2r11111111110000000000000000000
        2r111111111111000000000000000000
        2r1111111111111100000000000000000
        2r11111111111111110000000000000000
        2r11111111111111110000000000000000
        2r11111111111111110000000000000000
        2r11111111111111110000000000000000)
    offset: 0@0))
    Arguments and temporary variables:
        t1: [] in SophieBook class>>fromURI:application: {[t3 readFromURI: t1]}
        t2: ((CursorWithMask
    extent: 16@16
    depth: 1
    fromArray: #(
        2r0
        2r1111111111111100000000000000000
        2r1000000000000100000000000000000
        2r100000000001000000000000000000
        2r10000000010000000000000000000
        2r1110011100000000000000000000
        2r111111000000000000000000000
        2r11110000000000000000000000
        2r11110000000000000000000000
        2r100101000000000000000000000
        2r1000100100000000000000000000
        2r10000110010000000000000000000
        2r100001111001000000000000000000
        2r1000111111110100000000000000000
        2r1111111111111100000000000000000
        2r0)
    offset: -1@-1) setMaskForm: (Form
    extent: 16@16
    depth: 1
    fromArray: #(
        2r11111111111111110000000000000000
        2r11111111111111110000000000000000
        2r11111111111111110000000000000000
        2r11111000000111110000000000000000
        2r1111111111111100000000000000000
        2r111111111111000000000000000000
        2r11111111110000000000000000000
        2r1111111100000000000000000000
        2r1111111100000000000000000000
        2r11111111110000000000000000000
        2r111111111111000000000000000000
        2r1111111111111100000000000000000
        2r11111111111111110000000000000000
        2r11111111111111110000000000000000
        2r11111111111111110000000000000000
        2r11111111111111110000000000000000)
    offset: 0@0))
    Receiver's instance variables:
        bits: a Bitmap of length 16
        width: 16
        height: 16
        depth: 1
        offset: -1@-1
        maskForm: Form(16x16x1)

SophieBook class>>fromURI:application:
    Receiver: SophieBook
    Arguments and temporary variables:
        t1: file:///Users/travencollins/Desktop/The [^] [^] Triangle Fire.spbf
        t2: SophieApplication
        t3: a SophieBook (804) (nil)
    Receiver's instance variables:
        superclass: SophieAbstractBook
        methodDict: a MethodDictionary(size 102)
        format: 190
        instanceVariables: #('resourceManager' 'styleLibrary' 'templateLibrary' 'contentManager' 'markerManager' 'numberingManager' 'uri' 'eventTriggerManager' 'embeddedBooks' 'possibleURIForLinking' 'scriptManager' 'manifest' 'possibleManifestNumber' 'usageStatistic')
        organization: ('*Sophie-ResourceManager' addAsEmbeddedBook: addEmbeddedBook: closeBookCleanup lookupUUIDInResourceMgr:andAddToListIfFound: rememberThisBookIfAsked resourceManager resourceManager: resourceManagerReset resourcesCalledStylesUsedByTemplateFrames:AddToList:trackContentNodes: resourcesCalledTemplatesUsedByFramesAddToList:trackContentNodes: resourcesForBookStructureAddToList: resourcesForContentsRootAddToList:resolveAgainst: resourcesForDefaultStylesAddToList: resourcesForSpinesAddToList: resourcesForTimeLinesAddToList: resourcesForTriggeredActionAddToList: resourcesUnaccountedFor: resourcesUsed resourcesUsedPlusReturnContentRootUsage: updateUsageStatistic usageStatistic)
('private' addContentIfNonFlowFrame: contentManager: createCreateCommentBook deleteContentIfNonFlowFrame: deleteThisBookIfInTempDirectory deleteThisBookViaSUnitTesting dummyUpBook markerManager: numberingManager: preferences: publishBookForInternetURI: publishBookURI: publishBookURI:overrideResourceManager:setPublishFlagAndPurge: save saveAndTrimGenerations: saveAsId: saveAsURI: saveAsURI:trimGenerations: saveAsURI:trimGenerations:overrideResourceManager: saveAsURI:trimGenerations:overrideResourceManager:preserveUUIDs: saveAsWithFeedBackBlock:URI:trimGenerations:overrideResourceManager:preserveUUIDs: styleLibrary: templateLibrary:)
('*sophie-ui-browser' asSophieBrowserItem)
('accessing' book containingBook contentManager contentRootsDo: embeddedBookMap embeddedBooks embeddedBooks: eventTriggerManager eventTriggerManager: findAllStrings:caseSensitive:do: findString:caseSensitive: manifest manifest: markerManager possibleManifestNumber possibleManifestNumber: possibleURIForLinking possibleURIForLinking: possibleURIForLinkingPeek resetStyleLibrary setSophieSUnitFolderUri setSophieSUnitUri setSophieSUnitUriFlatFiles styleLibrary templateLibrary templateify uri uri:)
('testing' canWeEmbeddThisBook: isEmbedded)
('initialize' createFlatFilesStorage createFolderStorage createMemoryStorage id:application: initDefaultIndices initDefaultStyles i...etc...
        subclasses: nil
        name: #SophieBook
        classPool: nil
        sharedPools: nil
        environment: a SystemDictionary(lots of globals)
        category: #'Sophie-Books'

SophieApplication>>openBookIfNotAlreadyOpenViaURI:
    Receiver: SophieApplication
    Arguments and temporary variables:
        t1: file:///Users/travencollins/Desktop/The [^] [^] Triangle Fire.spbf/
        t2: nil
        t3: nil
        t4: file:///Users/travencollins/Desktop/The [^] [^] Triangle Fire.spbf/
        t5: nil
        t6: true
        t7: file:///Users/travencollins/Desktop/The [^] [^] Triangle Fire.spbf
        t8: nil
    Receiver's instance variables:
        myProperties: nil
        myScripts: #(AsyncScriptMessageSend(#alertIfNotCurrentRelease -> SophieApplication) AsyncScriptMessageSend(#onFlowSelectionMarkerModified -> SophieApplication) AsyncScriptMessageSend(#onFlowSelectionChanged -> SophieApplication) AsyncScriptMessageSend(#onReaderModeChanged -> SophieApplication) AsyncScriptMessageSend(#onImageStartup -> SophieApplication) AsyncScriptMessageSend(#handleMacDoubleClickOfSophieDocument: -> SophieApplication) AsyncScriptMessageSend(#handleOpenNoteBookAtStartUp -> SophieApplication) AsyncScriptMessageSend(#applicationMenuInvoked:script:withArgs: -> SophieApplication) AsyncScriptMessageSend(#initMenuBarOnRestart -> SophieApplication) AsyncScriptMessageSend(#evaluate: -> SophieApplication) AsyncScriptMessageSend(#evaluate: -> SophieApplication))
        myEventMap: an IdentityDictionary(#activeBookModelChanged->#(AsyncScriptMessageSend(#evaluate: -> SophieBookListExtension) AsyncScriptMessageSend(#evaluate: -> SophieEmbeddedBookListExtension) AsyncScriptMessageSend(#onActiveBookInApplication -> SophieHaloExtension) AsyncScriptMessageSend(#onActiveBookInApplication -> SophieFrameSelectorExtension) AsyncScriptMessageSend(#onActiveBookInApplication -> SophieFlowConnectionExtension) AsyncScriptMessageSend(#onActiveBookChanged -> SophiePageStructureExtension) AsyncScriptMessageSend(#onActiveBookModelChanged -> SophieStickyExtension) AsyncScriptMessageSend(#onActiveBookModelChanged -> SophiePageListView) AsyncScriptMessageSend(#onActiveBookChanged -> SophieTimelineExtensionView) AsyncScriptMessageSend(#onActiveBookModelChanged -> SophieSearchResultView) AsyncScriptMessageSend(#onActiveBookModelChanged -> SophieMarkerListView) AsyncScriptMessageSend(#onActiveBookChanged -> SophieResourceView) AsyncScriptMessageSend(#onActiveBookChanged -> SophieResourceView) AsyncScriptMessageSend(#onActiveBookChanged -> SophieResourceView) AsyncScriptMessageSend(#onActiveBookChanged -> SophieResourceView) AsyncScriptMessageSend(#onActiveBookChanged -> SophieResourceView) AsyncScriptMessageSend(#onActiveBookChanged -> SophieResourceView)) #alertIfNotCurrentRelease->#(AsyncScriptMessageSend(#alertIfNotCurrentRelease -> SophieApplication)) #applicationMenuInvoked->#(AsyncScriptMessageSend(#applicationMenuInvoked:script:withArgs: -> SophieApplication)) #beginDraggingResizeSelector->#(AsyncScriptMessageSend(#onBeginDraggingResizeSelector -> SophieHaloExtension)) #bookTemplatesChanged->#(AsyncScriptMessageSend(#evaluate: -> SophieBookTemplateListExtension)) #booksChanged->#(AsyncScriptMessageSend(#evaluate: -> SophieBookListExtension) AsyncScriptMessageSend(#evaluate: -> SophieEmbeddedBookListExtension)) #endDraggingResizeSelector->#(AsyncScriptMessageSend(#onEndDraggingResizeSelector -> SophieHaloExtension)) #flowSelectionChanged->#(AsyncScriptMessageSend(#onFlowSelectionChanged -> Sophie...etc...
        commandProcessor: a SophieCommandProcessor
        commands: a Dictionary(size 156)
        commandKeys: a Dictionary(#'application.addMarker'->#(#command #M) #'application.closeActiveBook'->#(#command #W) #'application.closeBookWindow'->#(#command #shift #W) #'application.copyFrameSelection'->#(#command #C) #'application.createNewBook'->#(#command #N) #'application.cutFrameSelection'->#(#command #X) #'application.deleteFrame'->#(#Delete) #'application.deleteMarker'->#(#Backspace) #'application.deletePage'->#(#Delete) #'application.duplicateFrameSelection'->#(#command #D) #'application.groupFrameSelection'->#(#command #G) #'application.openBook'->#(#command #O) #'application.pageDown'->#(#PageDown) #'application.pageUp'->#(#PageUp) #'application.pasteClipboard'->#(#command #V) #'application.pasteOverFrameSelection'->#(#command #V) #'application.readerMode'->#(#command #R) #'application.redo'->#(#command #Y) #'application.saveBook'->#(#command #S) #'application.saveBookAs'->#(#command #shift #S) #'application.undo'->#(#command #Z) #'application.ungroupFrameSelection'->#(#command #U) #'frame.moveDown'->#(#CursorDown) #'frame.moveFarDown'->#(#shift #CursorDown) #'frame.moveFarLeft'->#(#shift #CursorLeft) #'frame.moveFarRight'->#(#shift #CursorRight) #'frame.moveFarUp'->#(#shift #CursorUp) #'frame.moveLeft'->#(#CursorLeft) #'frame.moveLeftEdge'->#(#Home) #'frame.moveRight'->#(#CursorRight) #'frame.moveRightEdge'->#(#End) #'frame.moveUp'->#(#CursorUp) #'list.moveLineDown'->#(#CursorDown) #'list.moveLineEnd'->#(#End) #'list.moveLineStart'->#(#Home) #'list.moveLineUp'->#(#CursorUp) #'resourceBrowser.deleteSelection'->#(#Delete) #'spellExtension.findNextSpellingError'->#(#command #shift #;) #'text.backspace'->#(#Backspace) #'text.copySelection'->#(#command #C) #'text.cutSelection'->#(#command #X) #'text.enter'->#(#Return) #'text.findNext'->#(#command #G) #'text.forwardDelete'->#(#Delete) #'text.moveCursorLeft'->#(#CursorLeft) #'text.moveCursorRight'->#(#CursorRight) #'text.moveLineDown'->#(#CursorDown) #'text.moveLineEnd'->#(#End) #'text.moveLineStart'->#(#Home) #'text.moveLineUp'->#(#CursorUp) #'text.moveWord...etc...
        keyMap: SophieKeyboardDispatchTable
        ui: SophieApplicationMorphicWindowUI
        books: nil
        bookModels: a Set()
        extensions: a Dictionary(#ColorToolExtension->SophieColorToolExtension #FrameSelectorExtension->SophieFrameSelectorExtension #HaloExtension->SophieHaloExtension #MetaDataExtension->SophieMetaDataExtension #MovieExtension->SophieMovieExtension #PageStructureViewExtension->SophiePageStructureExtension #PageViewExtension->SophiePageViewExtension #bookList->SophieBookListExtension #bookTemplateList->SophieBookTemplateListExtension #commenting->SophieServerCommentExtension #componentList->SophieComponentExtension #debug->SophieDebugExtension #dialogs->SophieUserDialogsExtension #editing->SophieTextExtension #embeddedBookList->SophieEmbeddedBookListExtension #file->SophieBookFileExtension #flowConnection->SophieFlowConnectionExtension #frameLayoutExtension->SophieFrameLayoutExtension #help->SophieHelpMenuExtension #layoutTemplateExtension->SophieLayoutTemplateExtension #listNavigation->SophieListNavigationExtension #markers->SophieMarkerExtension #oki->SophieOKIExtension #pasteClipboard->SophiePasteClipboardExtension #resourceBrowser->SophieResourceBrowserExtension #searchReplace->SophieSearchReplaceExtension #searchResultExtension->SophieSearchResultExtension #servers->SophieS3ServersExtension #spellcheckui->SophieSpellCheckerExtension #sticky->SophieStickyExtension #thumbnailPageList->SophieThumbnailPageListExtension #timelineEditorView->SophieTimelineEditorExtension #timelineListView->SophieTimelineExtension )
        newBookStartNumber: nil
        booksWeaklyRemembered: nil
        inFullScreenMode: true

SophieApplication>>dropFile:at:
    Receiver: SophieApplication
    Arguments and temporary variables:
        t1: MultiByteFileStream: '/Users/travencollins/Desktop/The Triangle Fire.spbf/'
        t2: 0@0
        t3: file:///Users/travencollins/Desktop/The [^] [^] Triangle Fire.spbf/
    Receiver's instance variables:
        myProperties: nil
        myScripts: #(AsyncScriptMessageSend(#alertIfNotCurrentRelease -> SophieApplication) AsyncScriptMessageSend(#onFlowSelectionMarkerModified -> SophieApplication) AsyncScriptMessageSend(#onFlowSelectionChanged -> SophieApplication) AsyncScriptMessageSend(#onReaderModeChanged -> SophieApplication) AsyncScriptMessageSend(#onImageStartup -> SophieApplication) AsyncScriptMessageSend(#handleMacDoubleClickOfSophieDocument: -> SophieApplication) AsyncScriptMessageSend(#handleOpenNoteBookAtStartUp -> SophieApplication) AsyncScriptMessageSend(#applicationMenuInvoked:script:withArgs: -> SophieApplication) AsyncScriptMessageSend(#initMenuBarOnRestart -> SophieApplication) AsyncScriptMessageSend(#evaluate: -> SophieApplication) AsyncScriptMessageSend(#evaluate: -> SophieApplication))
        myEventMap: an IdentityDictionary(#activeBookModelChanged->#(AsyncScriptMessageSend(#evaluate: -> SophieBookListExtension) AsyncScriptMessageSend(#evaluate: -> SophieEmbeddedBookListExtension) AsyncScriptMessageSend(#onActiveBookInApplication -> SophieHaloExtension) AsyncScriptMessageSend(#onActiveBookInApplication -> SophieFrameSelectorExtension) AsyncScriptMessageSend(#onActiveBookInApplication -> SophieFlowConnectionExtension) AsyncScriptMessageSend(#onActiveBookChanged -> SophiePageStructureExtension) AsyncScriptMessageSend(#onActiveBookModelChanged -> SophieStickyExtension) AsyncScriptMessageSend(#onActiveBookModelChanged -> SophiePageListView) AsyncScriptMessageSend(#onActiveBookChanged -> SophieTimelineExtensionView) AsyncScriptMessageSend(#onActiveBookModelChanged -> SophieSearchResultView) AsyncScriptMessageSend(#onActiveBookModelChanged -> SophieMarkerListView) AsyncScriptMessageSend(#onActiveBookChanged -> SophieResourceView) AsyncScriptMessageSend(#onActiveBookChanged -> SophieResourceView) AsyncScriptMessageSend(#onActiveBookChanged -> SophieResourceView) AsyncScriptMessageSend(#onActiveBookChanged -> SophieResourceView) AsyncScriptMessageSend(#onActiveBookChanged -> SophieResourceView) AsyncScriptMessageSend(#onActiveBookChanged -> SophieResourceView)) #alertIfNotCurrentRelease->#(AsyncScriptMessageSend(#alertIfNotCurrentRelease -> SophieApplication)) #applicationMenuInvoked->#(AsyncScriptMessageSend(#applicationMenuInvoked:script:withArgs: -> SophieApplication)) #beginDraggingResizeSelector->#(AsyncScriptMessageSend(#onBeginDraggingResizeSelector -> SophieHaloExtension)) #bookTemplatesChanged->#(AsyncScriptMessageSend(#evaluate: -> SophieBookTemplateListExtension)) #booksChanged->#(AsyncScriptMessageSend(#evaluate: -> SophieBookListExtension) AsyncScriptMessageSend(#evaluate: -> SophieEmbeddedBookListExtension)) #endDraggingResizeSelector->#(AsyncScriptMessageSend(#onEndDraggingResizeSelector -> SophieHaloExtension)) #flowSelectionChanged->#(AsyncScriptMessageSend(#onFlowSelectionChanged -> Sophie...etc...
        commandProcessor: a SophieCommandProcessor
        commands: a Dictionary(size 156)
        commandKeys: a Dictionary(#'application.addMarker'->#(#command #M) #'application.closeActiveBook'->#(#command #W) #'application.closeBookWindow'->#(#command #shift #W) #'application.copyFrameSelection'->#(#command #C) #'application.createNewBook'->#(#command #N) #'application.cutFrameSelection'->#(#command #X) #'application.deleteFrame'->#(#Delete) #'application.deleteMarker'->#(#Backspace) #'application.deletePage'->#(#Delete) #'application.duplicateFrameSelection'->#(#command #D) #'application.groupFrameSelection'->#(#command #G) #'application.openBook'->#(#command #O) #'application.pageDown'->#(#PageDown) #'application.pageUp'->#(#PageUp) #'application.pasteClipboard'->#(#command #V) #'application.pasteOverFrameSelection'->#(#command #V) #'application.readerMode'->#(#command #R) #'application.redo'->#(#command #Y) #'application.saveBook'->#(#command #S) #'application.saveBookAs'->#(#command #shift #S) #'application.undo'->#(#command #Z) #'application.ungroupFrameSelection'->#(#command #U) #'frame.moveDown'->#(#CursorDown) #'frame.moveFarDown'->#(#shift #CursorDown) #'frame.moveFarLeft'->#(#shift #CursorLeft) #'frame.moveFarRight'->#(#shift #CursorRight) #'frame.moveFarUp'->#(#shift #CursorUp) #'frame.moveLeft'->#(#CursorLeft) #'frame.moveLeftEdge'->#(#Home) #'frame.moveRight'->#(#CursorRight) #'frame.moveRightEdge'->#(#End) #'frame.moveUp'->#(#CursorUp) #'list.moveLineDown'->#(#CursorDown) #'list.moveLineEnd'->#(#End) #'list.moveLineStart'->#(#Home) #'list.moveLineUp'->#(#CursorUp) #'resourceBrowser.deleteSelection'->#(#Delete) #'spellExtension.findNextSpellingError'->#(#command #shift #;) #'text.backspace'->#(#Backspace) #'text.copySelection'->#(#command #C) #'text.cutSelection'->#(#command #X) #'text.enter'->#(#Return) #'text.findNext'->#(#command #G) #'text.forwardDelete'->#(#Delete) #'text.moveCursorLeft'->#(#CursorLeft) #'text.moveCursorRight'->#(#CursorRight) #'text.moveLineDown'->#(#CursorDown) #'text.moveLineEnd'->#(#End) #'text.moveLineStart'->#(#Home) #'text.moveLineUp'->#(#CursorUp) #'text.moveWord...etc...
        keyMap: SophieKeyboardDispatchTable
        ui: SophieApplicationMorphicWindowUI
        books: nil
        bookModels: a Set()
        extensions: a Dictionary(#ColorToolExtension->SophieColorToolExtension #FrameSelectorExtension->SophieFrameSelectorExtension #HaloExtension->SophieHaloExtension #MetaDataExtension->SophieMetaDataExtension #MovieExtension->SophieMovieExtension #PageStructureViewExtension->SophiePageStructureExtension #PageViewExtension->SophiePageViewExtension #bookList->SophieBookListExtension #bookTemplateList->SophieBookTemplateListExtension #commenting->SophieServerCommentExtension #componentList->SophieComponentExtension #debug->SophieDebugExtension #dialogs->SophieUserDialogsExtension #editing->SophieTextExtension #embeddedBookList->SophieEmbeddedBookListExtension #file->SophieBookFileExtension #flowConnection->SophieFlowConnectionExtension #frameLayoutExtension->SophieFrameLayoutExtension #help->SophieHelpMenuExtension #layoutTemplateExtension->SophieLayoutTemplateExtension #listNavigation->SophieListNavigationExtension #markers->SophieMarkerExtension #oki->SophieOKIExtension #pasteClipboard->SophiePasteClipboardExtension #resourceBrowser->SophieResourceBrowserExtension #searchReplace->SophieSearchReplaceExtension #searchResultExtension->SophieSearchResultExtension #servers->SophieS3ServersExtension #spellcheckui->SophieSpellCheckerExtension #sticky->SophieStickyExtension #thumbnailPageList->SophieThumbnailPageListExtension #timelineEditorView->SophieTimelineEditorExtension #timelineListView->SophieTimelineExtension )
        newBookStartNumber: nil
        booksWeaklyRemembered: nil
        inFullScreenMode: true

[] in SophieWorldPlayer>>onDropFiles: {[SophieApplication singleton dropFile: t3 at: 0 @ 0]}
    Arguments and temporary variables:
        t1: [98@98 dropFilesEvent]
        t2: 1
        t3: MultiByteFileStream: '/Users/travencollins/Desktop/The Triangle Fire.spbf/'
        t4: 1

BlockContext>>ensure:
    Receiver: [] in SophieWorldPlayer>>onDropFiles: {[SophieApplication singleton dropFile: t3 at: 0 @ 0]}
    Arguments and temporary variables:
        t1: [] in SophieWorldPlayer>>onDropFiles: {[t3 close]}
        t2: nil
        t3: nil
    Receiver's instance variables:
        sender: BlockContext>>ensure:
        pc: 68
        stackp: 0
        nargs: 0
        startpc: 61
        home: SophieWorldPlayer>>onDropFiles:

SophieWorldPlayer>>onDropFiles:
    Receiver: World
    Arguments and temporary variables:
        t1: [98@98 dropFilesEvent]
        t2: 1
        t3: MultiByteFileStream: '/Users/travencollins/Desktop/The Triangle Fire.spbf/'
        t4: 1
    Receiver's instance variables:
        myProperties: an IdentityDictionary(#name->'World' )
        myScripts: #(AsyncScriptMessageSend(#onDropFiles: -> World) AsyncScriptMessageSend(#onDragDrop: -> World) AsyncScriptMessageSend(#evaluate: -> World))
        myEventMap: an IdentityDictionary(#dragDrop->#(AsyncScriptMessageSend(#onDragDrop: -> World)) #dropFiles->#(AsyncScriptMessageSend(#onDropFiles: -> World)) #extentChanged->#(AsyncScriptMessageSend(#evaluate: -> World)) #tick->#(a ScriptEventObserver a ScriptEventObserver a ScriptEventObserver a ScriptEventObserver a ScriptEventObserver a ScriptEventObserver) )
        myCostume: a CWorldCostume[World]
        myPlayer: nil
        sensor: nil
        hands: #(Hand)
        scheduler: a ScriptScheduler
        maxLayoutRounds: 3
        damageRecorder: nil
        bltRects: nil
        eventQueue: a SharedQueue
        display: Form(1260x744x32)
        ownerMorph: a SophieRootMorph(3727)
        frameNumber: 2028
        activeProject: nil
        killFrame: nil

AsyncScriptMessageSend(ScriptMessageSend)>>synchronousValueWithArguments:event:
    Receiver: AsyncScriptMessageSend(#onDropFiles: -> World)
    Arguments and temporary variables:
        t1: #([98@98 dropFilesEvent])
        t2: a ScriptEvent
        t3: nil
        t4: ScriptProcess in AsyncScriptMessageSend(#onDropFiles: -> World)>>onDropFiles:
    Receiver's instance variables:
        receiver: World
        selector: #onDropFiles:
        arguments: #(nil)
        eventSpec: #(World #dropFiles)
        extraArgs: 1
        paused: nil
        myFarRef: nil
        myProcess: ScriptProcess in AsyncScriptMessageSend(#onDropFiles: -> World)>>onDropFiles:
        myQueue: a ScriptEventBuffer
        myIsland: an Island(Squeak)
        myScheduler: a ScriptScheduler
        myTrigger: CEventTrigger(on: dropFiles -> SophieWorldPlayer>>#onDropFiles:)
        myScripts: nil

AsyncScriptMessageSend(ScriptMessageSend)>>synchronousValueWithEvent:
    Receiver: AsyncScriptMessageSend(#onDropFiles: -> World)
    Arguments and temporary variables:
        t1: a ScriptEvent
        t2: #([98@98 dropFilesEvent])
        t3: 1
        t4: 1
    Receiver's instance variables:
        receiver: World
        selector: #onDropFiles:
        arguments: #(nil)
        eventSpec: #(World #dropFiles)
        extraArgs: 1
        paused: nil
        myFarRef: nil
        myProcess: ScriptProcess in AsyncScriptMessageSend(#onDropFiles: -> World)>>onDropFiles:
        myQueue: a ScriptEventBuffer
        myIsland: an Island(Squeak)
        myScheduler: a ScriptScheduler
        myTrigger: CEventTrigger(on: dropFiles -> SophieWorldPlayer>>#onDropFiles:)
        myScripts: nil

AsyncScriptMessageSend(ScriptMessageSend)>>valueWithEvent:
    Receiver: AsyncScriptMessageSend(#onDropFiles: -> World)
    Arguments and temporary variables:
        t1: a ScriptEvent
    Receiver's instance variables:
        receiver: World
        selector: #onDropFiles:
        arguments: #(nil)
        eventSpec: #(World #dropFiles)
        extraArgs: 1
        paused: nil
        myFarRef: nil
        myProcess: ScriptProcess in AsyncScriptMessageSend(#onDropFiles: -> World)>>onDropFiles:
        myQueue: a ScriptEventBuffer
        myIsland: an Island(Squeak)
        myScheduler: a ScriptScheduler
        myTrigger: CEventTrigger(on: dropFiles -> SophieWorldPlayer>>#onDropFiles:)
        myScripts: nil

AsyncScriptMessageSend>>value
    Receiver: AsyncScriptMessageSend(#onDropFiles: -> World)
    Arguments and temporary variables:

    Receiver's instance variables:
        receiver: World
        selector: #onDropFiles:
        arguments: #(nil)
        eventSpec: #(World #dropFiles)
        extraArgs: 1
        paused: nil
        myFarRef: nil
        myProcess: ScriptProcess in AsyncScriptMessageSend(#onDropFiles: -> World)>>onDropFiles:
        myQueue: a ScriptEventBuffer
        myIsland: an Island(Squeak)
        myScheduler: a ScriptScheduler
        myTrigger: CEventTrigger(on: dropFiles -> SophieWorldPlayer>>#onDropFiles:)
        myScripts: nil

ScriptProcess>>privateRunMsg
    Receiver: ScriptProcess in AsyncScriptMessageSend(#onDropFiles: -> World)>>onDropFiles:
    Arguments and temporary variables:

    Receiver's instance variables:
        nextLink: nil
        suspendedContext: ScriptProcess(Process)>>suspend
        priority: 45
        myList: nil
        errorHandler: nil
        name: nil
        island: an Island(Squeak)
        owner: AsyncScriptMessageSend(#onDropFiles: -> World)
        event: a ScriptEvent
        message: AsyncScriptMessageSend(#onDropFiles: -> World)
        result: nil
        flags: 1
        properties: an IdentityDictionary(#hand->Far:[Hand] )
        scheduler: a ScriptScheduler
        myEventMap: nil
        myLink: a ScriptProcessLinkWeak
        myTriggerBlock: nil
        myHandler: nil
        topContext: UndefinedObject(Object)>>doesNotUnderstand:

[] in ScriptProcess>>newScript {[self privateRunMsg. self suspend]}
    Arguments and temporary variables:


--- The full stack ---
UndefinedObject(Object)>>doesNotUnderstand:
[] in StandardFileStream class>>retryWithGC:until:forFileNamed: {[:t6 | t6 name sameAs: t3]}
[] in Array(Collection)>>anySatisfy: {[:t2 | (t1 value: t2) ifTrue: [^ true]. nil]}
Array(SequenceableCollection)>>do:
Array(Collection)>>anySatisfy:
StandardFileStream class>>retryWithGC:until:forFileNamed:
MultiByteFileStream(StandardFileStream)>>open:forWrite:
MultiByteFileStream>>open:forWrite:
MultiByteFileStream class(StandardFileStream class)>>isAFileNamed:
FileStream class>>isAFileNamed:
SophieResourceStorageFileDirectoryWithFolderAndZipped(SophieResourceStorageFileDirectoryZip)>>metaDataURI
SophieResourceStorageFileDirectoryWithFolderAndZipped(SophieResourceStorageFileDirectory)>>getMetaDataReadStream
SophieResourceStorageFileDirectoryWithFolderAndZipped(SophieResourceStorage)>>readResourceMetadata:
SophieResourceManagerFolderPackage(SophieResourceManager)>>resourceDictionary
SophieResourceManagerFolderPackage(SophieResourceManager)>>book:
SophieResourceManagerFolderPackage class(SophieResourceManager class)>>forBook:
SophieBook>>createFolderStorage
SophieBook>>readFromURI:
[] in SophieBook class>>fromURI:application: {[t3 readFromURI: t1]}
BlockContext>>ensure:
CursorWithMask(Cursor)>>showWhile:
SophieBook class>>fromURI:application:
SophieApplication>>openBookIfNotAlreadyOpenViaURI:
SophieApplication>>dropFile:at:
[] in SophieWorldPlayer>>onDropFiles: {[SophieApplication singleton dropFile: t3 at: 0 @ 0]}
BlockContext>>ensure:
SophieWorldPlayer>>onDropFiles:
AsyncScriptMessageSend(ScriptMessageSend)>>synchronousValueWithArguments:event:
AsyncScriptMessageSend(ScriptMessageSend)>>synchronousValueWithEvent:
AsyncScriptMessageSend(ScriptMessageSend)>>valueWithEvent:
AsyncScriptMessageSend>>value
ScriptProcess>>privateRunMsg
[] in ScriptProcess>>newScript {[self privateRunMsg. self suspend]}
 
(0011287 - 892 - 1490 - 1490 - 1490 - 1490 - 1490)
johnmci
10-10-07 17:38

Ok, the problem is that

open: fileName forWrite: writeMode
    "Open the file with the given name. If writeMode is true, allow writing, otherwise open the file in read-only mode."
    "Changed to do a GC and retry before failing ar 3/21/98 17:25"
    | f |
    f _ fileName asVmPathName.

    fileID _ StandardFileStream retryWithGC:[self primOpen: f writable: writeMode]
                    until:[:id| id notNil]
                    forFileNamed: fileName.
    fileID ifNil: [^ nil]. "allows sender to detect failure"
    self register.
    name _ fileName.
    rwmode _ writeMode.
    buffer1 _ String new: 1.


it actually registers the object into the WeakRegistry before assigning the name, this means the name is NIL. Now if another process can leap in and trigger the retryWithGC:until:forFileNamed: you will hit this problem since it is examining the keys and at the time it's added to the dictionary it has a nil name.
 

- Issue History
Date Modified Username Field Change
04-20-07 22:29 johnmci New Issue
04-20-07 22:29 johnmci Status new => assigned
04-20-07 22:29 johnmci Assigned To  => cdegroot
10-02-07 21:10 johnmci Note Added: 0011234
10-10-07 17:38 johnmci Note Added: 0011287
10-10-07 17:46 johnmci File Added: setFileNameBeforeRegister-JMM.1.cs.zip
10-24-10 05:51 leves Status assigned => resolved
10-24-10 05:51 leves Fixed in Version  => 4.1
10-24-10 05:51 leves Resolution open => fixed
02-06-11 23:48 leves Status resolved => closed


Mantis 1.0.8[^]
Copyright © 2000 - 2007 Mantis Group
45 total queries executed.
34 unique queries executed.
Powered by Mantis Bugtracker