THERE_BE_DRAGONS_HERE
Error: Contexts must only be created with newForMethod:
9 September 2011 1:59:21 pm

VM: unix - i686 - linux-gnu - Croquet Closure Cog VM [CoInterpreter VMMaker.oscog-eem.121]
Image: Pharo1.3 [Latest update: #13280]

MethodContext class(Object)>>error:
	Receiver: MethodContext
	Arguments and temporary variables: 
		aString: 	'Contexts must only be created with newForMethod:'
	Receiver's instance variables: 
		superclass: 	ContextPart
		methodDict: 	a MethodDictionary(#aboutToReturn:through:->(MethodContext>>#aboutT...etc...
		format: 	29070
		instanceVariables: 	#('method' 'closureOrNil' 'receiver')
		organization: 	('*Fuel' closure: fuelAccept: method:)
('*FuelTests' assertWellMa...etc...
		subclasses: 	nil
		name: 	#MethodContext
		classPool: 	a Dictionary()
		sharedPools: 	nil
		environment: 	nil
		category: 	#'Kernel-Methods'
		traitComposition: 	nil
		localSelectors: 	nil


MethodContext class(ContextPart class)>>basicNew:
	Receiver: MethodContext
	Arguments and temporary variables: 
		size: 	0
	Receiver's instance variables: 
		superclass: 	ContextPart
		methodDict: 	a MethodDictionary(#aboutToReturn:through:->(MethodContext>>#aboutT...etc...
		format: 	29070
		instanceVariables: 	#('method' 'closureOrNil' 'receiver')
		organization: 	('*Fuel' closure: fuelAccept: method:)
('*FuelTests' assertWellMa...etc...
		subclasses: 	nil
		name: 	#MethodContext
		classPool: 	a Dictionary()
		sharedPools: 	nil
		environment: 	nil
		category: 	#'Kernel-Methods'
		traitComposition: 	nil
		localSelectors: 	nil


MethodContext(Object)>>sandstoneDeepCopyVisits:
	Receiver: RangeConstraint>>defaultRangeViolationHandler
	Arguments and temporary variables: 
		visitedParts: 	an IdentityDictionary(size 856)
		newObject: 	nil
		class: 	MethodContext
		index: 	0
		value: 	nil
	Receiver's instance variables: 
		sender: 	nil
		pc: 	nil
		stackp: 	0
		method: 	(RangeConstraint>>#defaultRangeViolationHandler "a CompiledMethod(60293...etc...
		closureOrNil: 	nil
		receiver: 	a RangeConstraint


BlockClosure(Object)>>sandstoneDeepCopyVisits:
	Receiver: [:value :min :max | 
value
		ifNil: [^ self signalError: 'The value ' , value printString ...etc...
	Arguments and temporary variables: 
<<error during printing>
	Receiver's instance variables: 
		outerContext: 	RangeConstraint>>defaultRangeViolationHandler
		startpc: 	73
		numArgs: 	3


RangeConstraint(Object)>>sandstoneDeepCopyVisits:
	Receiver: a RangeConstraint
	Arguments and temporary variables: 
		visitedParts: 	an IdentityDictionary(size 856)
		newObject: 	a RangeConstraint
		class: 	RangeConstraint
		index: 	3
		value: 	[:value :min :max | 
value
		ifNil: [^ self signalError: 'The value ' , ...etc...
	Receiver's instance variables: 
		lock: 	#immutable
		semanticKey: 	#daysSinceStartOfYear
		rangeViolationHandler: 	[:value :min :max | 
value
		ifNil: [^ self signalError:...etc...
		minValidValue: 	0
		maxValidValue: 	365


GregorianCalendar(Object)>>sandstoneDeepCopyVisits:
	Receiver: a GregorianCalendar
	Arguments and temporary variables: 
		visitedParts: 	an IdentityDictionary(size 856)
		newObject: 	a GregorianCalendar
		class: 	GregorianCalendar
		index: 	18
		value: 	a RangeConstraint
	Receiver's instance variables: 
		lock: 	#immutable
		clock: 	a LocalTimeCalendarClock(tick resolution = second | Calendar = Gregorian...etc...
		yearNumberingPolicy: 	an OrdinalNumberingPolicy
		secondsSinceJulianDayEpochUpToEpoch: 	148731163200
		secondsSinceUnificationEpochUpToEpoch: 	0
		daysSinceStartOfWeekForEpochDay: 	1
		daysSinceStartOfISOWeekForEpochDay: 	0
		daysSinceStartOfANSIWeekForEpochDay: 	1
		minDaysPerYear: 	365
		maxDaysPerYear: 	366
		minMonthsPerYear: 	12
		maxMonthsPerYear: 	12
		minDaysPerMonth: 	28
		maxDaysPerMonth: 	31
		monthOrdinalRangeConstraint: 	a RangeConstraint
		dayOfMonthOrdinalRangeConstraint: 	a RangeConstraint
		dayOfYearOrdinalRangeConstraint: 	a RangeConstraint
		daysSinceStartOfYearRangeConstraint: 	a RangeConstraint
		monthOrdinalsByMonthKey: 	a Dictionary(#April->4 #August->8 #December->12 #Febru...etc...
		monthKeysByMonthOrdinal: 	a Dictionary(1->#January 2->#February 3->#March 4->#Ap...etc...
		monthNameKeysByMonthKey: 	a Dictionary(#April->#April #August->#August #December...etc...
		monthKeyByMonthNameKey: 	a Dictionary(#April->#April #August->#August #December-...etc...
		monthOrdinalsAlwaysCorrespondToTheSameMonthKey: 	true
		doMonthKeysAlwaysCorrespondToTheSameMonthNameKey: 	true
		yearlyCalendars: 	an Array({StaticYearlyCalendar typeCode=1	 monthsPerYear=12	 d...etc...
		secondsFromEpochUpToGregorianStart: 	49916304000


StaticYearlyCalendar(Object)>>sandstoneDeepCopyVisits:
	Receiver: {StaticYearlyCalendar typeCode=1	 monthsPerYear=12	 daysPerYear=365	 leapMonthOrdinals=#()...etc...
	Arguments and temporary variables: 
		visitedParts: 	an IdentityDictionary(size 856)
		newObject: 	{StaticYearlyCalendar typeCode=1	 monthsPerYear=12	 daysPerYear=365	...etc...
		class: 	StaticYearlyCalendar
		index: 	2
		value: 	a GregorianCalendar
	Receiver's instance variables: 
		lock: 	#immutable
		calendar: 	a GregorianCalendar
		typeCode: 	1
		intercalaryMonthCount: 	0
		leapMonthOrdinals: 	#()
		leapDayOrdinals: 	#()
		daysPerYear: 	365
		daysPerStandardYear: 	365
		hasNoLeapDays: 	true
		months: 	an Array({StaticMonthlyCalendar monthKey=#January	 name=January
	 ordin...etc...
		days: 	an Array({January 1} {January 2} {January 3} {January 4} {January 5} {Jan...etc...


StaticMonthlyCalendar(Object)>>sandstoneDeepCopyVisits:
	Receiver: {StaticMonthlyCalendar monthKey=#December	 name=December
	 ordinal=12	 yearTypeCode=1	 day...etc...
	Arguments and temporary variables: 
		visitedParts: 	an IdentityDictionary(size 856)
		newObject: 	{StaticMonthlyCalendar monthKey=#December	 name=December
	 ordinal=1...etc...
		class: 	StaticMonthlyCalendar
		index: 	2
		value: 	{StaticYearlyCalendar typeCode=1	 monthsPerYear=12	 daysPerYear=365	 lea...etc...
	Receiver's instance variables: 
		lock: 	#immutable
		containingPeriod: 	{StaticYearlyCalendar typeCode=1	 monthsPerYear=12	 daysPerYe...etc...
		monthOrdinal: 	12
		isLeap: 	false
		key: 	#December
		nameKey: 	#December
		isIntercalary: 	false
		leapDayOrdinals: 	#()
		daysUpToMonthSinceStartOfYear: 	334
		prevInYear: 	{StaticMonthlyCalendar monthKey=#November	 name=November
	 ordinal=...etc...
		nextInYear: 	nil
		days: 	an Array({December 1} {December 2} {December 3} {December 4} {December 5}...etc...


StaticMonthlyCalendar(Object)>>sandstoneDeepCopyVisits:
	Receiver: {StaticMonthlyCalendar monthKey=#November	 name=November
	 ordinal=11	 yearTypeCode=1	 day...etc...
	Arguments and temporary variables: 
<<error during printing>
	Receiver's instance variables: 
		lock: 	#immutable
		containingPeriod: 	{StaticYearlyCalendar typeCode=1	 monthsPerYear=12	 daysPerYe...etc...
		monthOrdinal: 	11
		isLeap: 	false
		key: 	#November
		nameKey: 	#November
		isIntercalary: 	false
		leapDayOrdinals: 	#()
		daysUpToMonthSinceStartOfYear: 	304
		prevInYear: 	{StaticMonthlyCalendar monthKey=#October	 name=October
	 ordinal=10...etc...
		nextInYear: 	{StaticMonthlyCalendar monthKey=#December	 name=December
	 ordinal=...etc...
		days: 	an Array({November 1} {November 2} {November 3} {November 4} {November 5}...etc...


StaticMonthlyCalendar(Object)>>sandstoneDeepCopyVisits:
	Receiver: {StaticMonthlyCalendar monthKey=#October	 name=October
	 ordinal=10	 yearTypeCode=1	 daysP...etc...
	Arguments and temporary variables: 
<<error during printing>
	Receiver's instance variables: 
		lock: 	#immutable
		containingPeriod: 	{StaticYearlyCalendar typeCode=1	 monthsPerYear=12	 daysPerYe...etc...
		monthOrdinal: 	10
		isLeap: 	false
		key: 	#October
		nameKey: 	#October
		isIntercalary: 	false
		leapDayOrdinals: 	#()
		daysUpToMonthSinceStartOfYear: 	273
		prevInYear: 	{StaticMonthlyCalendar monthKey=#September	 name=September
	 ordina...etc...
		nextInYear: 	{StaticMonthlyCalendar monthKey=#November	 name=November
	 ordinal=...etc...
		days: 	an Array({October 1} {October 2} {October 3} {October 4} {October 5} {Oct...etc...


StaticMonthlyCalendar(Object)>>sandstoneDeepCopyVisits:
	Receiver: {StaticMonthlyCalendar monthKey=#September	 name=September
	 ordinal=9	 yearTypeCode=1	 da...etc...
	Arguments and temporary variables: 
<<error during printing>
	Receiver's instance variables: 
		lock: 	#immutable
		containingPeriod: 	{StaticYearlyCalendar typeCode=1	 monthsPerYear=12	 daysPerYe...etc...
		monthOrdinal: 	9
		isLeap: 	false
		key: 	#September
		nameKey: 	#September
		isIntercalary: 	false
		leapDayOrdinals: 	#()
		daysUpToMonthSinceStartOfYear: 	243
		prevInYear: 	{StaticMonthlyCalendar monthKey=#August	 name=August
	 ordinal=8	 y...etc...
		nextInYear: 	{StaticMonthlyCalendar monthKey=#October	 name=October
	 ordinal=10...etc...
		days: 	an Array({September 1} {September 2} {September 3} {September 4} {Septemb...etc...


StaticCalendarDay(Object)>>sandstoneDeepCopyVisits:
	Receiver: {September 10}
	Arguments and temporary variables: 
		visitedParts: 	an IdentityDictionary(size 856)
		newObject: 	{nil 10}
		class: 	StaticCalendarDay
		index: 	2
		value: 	{StaticMonthlyCalendar monthKey=#September	 name=September
	 ordinal=9	 ...etc...
	Receiver's instance variables: 
		lock: 	#immutable
		containingPeriod: 	{StaticMonthlyCalendar monthKey=#September	 name=September
	 ...etc...
		monthOrdinal: 	9
		isLeap: 	false
		dayOfMonthOrdinal: 	10
		dayOfYearOrdinal: 	253
		isLeapDayInMonth: 	false


StafferDateAndTime(Object)>>sandstoneDeepCopyVisits:
	Receiver: 2011-09-10T00:00:00-04:00
	Arguments and temporary variables: 
		visitedParts: 	an IdentityDictionary(size 856)
		newObject: 	2011-09-10T00:00:00-04:00
		class: 	StafferDateAndTime
		index: 	4
		value: 	{September 10}
	Receiver's instance variables: 
		lock: 	#immutable
		calendar: 	a GregorianCalendar
		year: 	2011
		calendarDay: 	{September 10}
		daysSinceEpoch: 	734389
		secondsSinceStartOfDay: 	14400
		nanosecondsSinceSecond: 	0
		timeZone: 	{BasicTimezone
	key=-14400
	offsetFromUT=-04:00}


StafferCampModel(Object)>>sandstoneDeepCopyVisits:
	Receiver: a StafferCampModel
	Arguments and temporary variables: 
		visitedParts: 	an IdentityDictionary(size 856)
		newObject: 	a StafferCampModel
		class: 	StafferCampModel
		index: 	25
		value: 	2011-09-10T00:00:00-04:00
	Receiver's instance variables: 
		id: 	'cmngre2s16oaxpyrwa4w125gd'
		createdOn: 	2011-09-09T13:59:21-04:00
		updatedOn: 	2011-09-09T13:59:21-04:00
		version: 	1
		isNew: 	false
		contactInfo: 	a StafferContactInfoModel
		activities: 	a SortedCollection(Activity - 'Bussing Tables' Activity - 'Cook' Ac...etc...
		skills: 	an OrderedCollection(a StafferSkillsModel a StafferSkillsModel a Staffe...etc...
		competencyWeight: 	33
		staffPreferenceWeight: 	33
		mgmtPreferenceWeight: 	33
		businessHours: 	an OrderedCollection()
		minimumShiftLength: 	00:04:00:00
		overtime: 	false
		daysToSchedule: 	nil
		closedDays: 	a Set()
		minScheduleIncrement: 	nil
		maximumShiftLength: 	00:10:00:00
		blogRepository: 	nil
		shiftsForTrade: 	a Set()
		currentEmployeeEvents: 	an OrderedCollection('Cook 1' - nil - Starts: 0001-01-01...etc...
		autoSchedule: 	true
		currentActivityEvents: 	an OrderedCollection()
		start: 	2011-09-09T00:00:00-04:00
		end: 	2011-09-10T00:00:00-04:00
		demandBasedStaffing: 	false
		customerNameString: 	'Customers'
		hoursPerWeek: 	nil
		overtimeResetDate: 	nil


StafferCampModel(SDActiveRecord)>>sandstoneDeepCopy
	Receiver: a StafferCampModel
	Arguments and temporary variables: 

	Receiver's instance variables: 
		id: 	'cmngre2s16oaxpyrwa4w125gd'
		createdOn: 	2011-09-09T13:59:21-04:00
		updatedOn: 	2011-09-09T13:59:21-04:00
		version: 	1
		isNew: 	false
		contactInfo: 	a StafferContactInfoModel
		activities: 	a SortedCollection(Activity - 'Bussing Tables' Activity - 'Cook' Ac...etc...
		skills: 	an OrderedCollection(a StafferSkillsModel a StafferSkillsModel a Staffe...etc...
		competencyWeight: 	33
		staffPreferenceWeight: 	33
		mgmtPreferenceWeight: 	33
		businessHours: 	an OrderedCollection()
		minimumShiftLength: 	00:04:00:00
		overtime: 	false
		daysToSchedule: 	nil
		closedDays: 	a Set()
		minScheduleIncrement: 	nil
		maximumShiftLength: 	00:10:00:00
		blogRepository: 	nil
		shiftsForTrade: 	a Set()
		currentEmployeeEvents: 	an OrderedCollection('Cook 1' - nil - Starts: 0001-01-01...etc...
		autoSchedule: 	true
		currentActivityEvents: 	an OrderedCollection()
		start: 	2011-09-09T00:00:00-04:00
		end: 	2011-09-10T00:00:00-04:00
		demandBasedStaffing: 	false
		customerNameString: 	'Customers'
		hoursPerWeek: 	nil
		overtimeResetDate: 	nil


SDFileStore>>storeObject:
	Receiver: a SDFileStore
	Arguments and temporary variables: 
		origObject: 	a StafferCampModel
		currentVersion: 	nil
		newVersion: 	nil
		oldVersion: 	nil
		dir: 	nil
		anObject: 	nil
	Receiver's instance variables: 
		cache: 	a Dictionary(SDChildMock->a SDConcurrentDictionary SDFooObject->a SDConc...etc...


[self validate.
	(isFirstSave := isNew)
		ifTrue: [self onBeforeFirstSave].
	self onBeforeSave.
	isFirstSave
		ifTrue: [Store storeObject: self]
		ifFalse: [Store updateObject: self].
	isFirstSave
		ifTrue: [self onAfterFirstSave].
	self onAfterSave.
	self] in StafferCampModel(SDActiveRecord)>>save
	Receiver: a StafferCampModel
	Arguments and temporary variables: 
		isFirstSave: 	#(true)
	Receiver's instance variables: 
		id: 	'cmngre2s16oaxpyrwa4w125gd'
		createdOn: 	2011-09-09T13:59:21-04:00
		updatedOn: 	2011-09-09T13:59:21-04:00
		version: 	1
		isNew: 	false
		contactInfo: 	a StafferContactInfoModel
		activities: 	a SortedCollection(Activity - 'Bussing Tables' Activity - 'Cook' Ac...etc...
		skills: 	an OrderedCollection(a StafferSkillsModel a StafferSkillsModel a Staffe...etc...
		competencyWeight: 	33
		staffPreferenceWeight: 	33
		mgmtPreferenceWeight: 	33
		businessHours: 	an OrderedCollection()
		minimumShiftLength: 	00:04:00:00
		overtime: 	false
		daysToSchedule: 	nil
		closedDays: 	a Set()
		minScheduleIncrement: 	nil
		maximumShiftLength: 	00:10:00:00
		blogRepository: 	nil
		shiftsForTrade: 	a Set()
		currentEmployeeEvents: 	an OrderedCollection('Cook 1' - nil - Starts: 0001-01-01...etc...
		autoSchedule: 	true
		currentActivityEvents: 	an OrderedCollection()
		start: 	2011-09-09T00:00:00-04:00
		end: 	2011-09-10T00:00:00-04:00
		demandBasedStaffing: 	false
		customerNameString: 	'Customers'
		hoursPerWeek: 	nil
		overtimeResetDate: 	nil


[self enter.
	aBlock value] in Monitor>>critical:
	Receiver: a Monitor
	Arguments and temporary variables: 
		aBlock: 	[self validate.
	(isFirstSave := isNew)
		ifTrue: [self onBeforeFirstSa...etc...
	Receiver's instance variables: 
		mutex: 	a Semaphore()
		ownerProcess: 	a Process in Monitor>>exit
		nestingLevel: 	1
		defaultQueue: 	nil
		queueDict: 	nil
		queuesMutex: 	a Semaphore()


BlockClosure>>ensure:
	Receiver: [self enter.
	aBlock value]
	Arguments and temporary variables: 
		aBlock: 	[self exit]
		complete: 	nil
		returnValue: 	nil
	Receiver's instance variables: 
		outerContext: 	Monitor>>critical:
		startpc: 	30
		numArgs: 	0


Monitor>>critical:
	Receiver: a Monitor
	Arguments and temporary variables: 
		aBlock: 	[self validate.
	(isFirstSave := isNew)
		ifTrue: [self onBeforeFirstSa...etc...
	Receiver's instance variables: 
		mutex: 	a Semaphore()
		ownerProcess: 	a Process in Monitor>>exit
		nestingLevel: 	1
		defaultQueue: 	nil
		queueDict: 	nil
		queuesMutex: 	a Semaphore()


StafferCampModel(SDActiveRecord)>>critical:
	Receiver: a StafferCampModel
	Arguments and temporary variables: 
		aBlock: 	[self validate.
	(isFirstSave := isNew)
		ifTrue: [self onBeforeFirstSa...etc...
	Receiver's instance variables: 
		id: 	'cmngre2s16oaxpyrwa4w125gd'
		createdOn: 	2011-09-09T13:59:21-04:00
		updatedOn: 	2011-09-09T13:59:21-04:00
		version: 	1
		isNew: 	false
		contactInfo: 	a StafferContactInfoModel
		activities: 	a SortedCollection(Activity - 'Bussing Tables' Activity - 'Cook' Ac...etc...
		skills: 	an OrderedCollection(a StafferSkillsModel a StafferSkillsModel a Staffe...etc...
		competencyWeight: 	33
		staffPreferenceWeight: 	33
		mgmtPreferenceWeight: 	33
		businessHours: 	an OrderedCollection()
		minimumShiftLength: 	00:04:00:00
		overtime: 	false
		daysToSchedule: 	nil
		closedDays: 	a Set()
		minScheduleIncrement: 	nil
		maximumShiftLength: 	00:10:00:00
		blogRepository: 	nil
		shiftsForTrade: 	a Set()
		currentEmployeeEvents: 	an OrderedCollection('Cook 1' - nil - Starts: 0001-01-01...etc...
		autoSchedule: 	true
		currentActivityEvents: 	an OrderedCollection()
		start: 	2011-09-09T00:00:00-04:00
		end: 	2011-09-10T00:00:00-04:00
		demandBasedStaffing: 	false
		customerNameString: 	'Customers'
		hoursPerWeek: 	nil
		overtimeResetDate: 	nil


StafferCampModel(SDActiveRecord)>>save
	Receiver: a StafferCampModel
	Arguments and temporary variables: 
		isFirstSave: 	#(true)
	Receiver's instance variables: 
		id: 	'cmngre2s16oaxpyrwa4w125gd'
		createdOn: 	2011-09-09T13:59:21-04:00
		updatedOn: 	2011-09-09T13:59:21-04:00
		version: 	1
		isNew: 	false
		contactInfo: 	a StafferContactInfoModel
		activities: 	a SortedCollection(Activity - 'Bussing Tables' Activity - 'Cook' Ac...etc...
		skills: 	an OrderedCollection(a StafferSkillsModel a StafferSkillsModel a Staffe...etc...
		competencyWeight: 	33
		staffPreferenceWeight: 	33
		mgmtPreferenceWeight: 	33
		businessHours: 	an OrderedCollection()
		minimumShiftLength: 	00:04:00:00
		overtime: 	false
		daysToSchedule: 	nil
		closedDays: 	a Set()
		minScheduleIncrement: 	nil
		maximumShiftLength: 	00:10:00:00
		blogRepository: 	nil
		shiftsForTrade: 	a Set()
		currentEmployeeEvents: 	an OrderedCollection('Cook 1' - nil - Starts: 0001-01-01...etc...
		autoSchedule: 	true
		currentActivityEvents: 	an OrderedCollection()
		start: 	2011-09-09T00:00:00-04:00
		end: 	2011-09-10T00:00:00-04:00
		demandBasedStaffing: 	false
		customerNameString: 	'Customers'
		hoursPerWeek: 	nil
		overtimeResetDate: 	nil


StafferUserModel>>onBeforeSave
	Receiver: 'Server 1'
	Arguments and temporary variables: 

	Receiver's instance variables: 
		id: 	'9vv6p02bvndmgyxapevq4gxod'
		createdOn: 	2011-09-09T13:59:21-04:00
		updatedOn: 	2011-09-09T13:59:15-04:00
		version: 	0
		isNew: 	true
		abTests: 	nil
		isReal: 	true
		termsOfService: 	nil
		contactInfo: 	a StafferContactInfoModel
		password: 	nil
		currentCamp: 	a StafferCampModel
		views: 	a SmallDictionary(#activityList->true #dashboard->true #employeeList->#L...etc...
		birthDate: 	''
		skills: 	an OrderedCollection(a StafferSkillsModel a StafferSkillsModel a Staffe...etc...
		qualifications: 	a Dictionary(Qualification - 'Serving'->true Qualification - 'S...etc...
		employeeCamps: 	a Set(a StafferCampModel)
		adminCamps: 	a Set()
		plan: 	'Free Trial'
		scheduleModel: 	a StafferEmployeeScheduleModel
		schedulePreferences: 	a StafferUserSchedulePreferences
		userType: 	#demo
		currentSchedule: 	a StafferUserCurrentSchedule
		pendingTrades: 	a SortedCollection()
		notifier: 	a StafferNotifier


[self validate.
	(isFirstSave := isNew)
		ifTrue: [self onBeforeFirstSave].
	self onBeforeSave.
	isFirstSave
		ifTrue: [Store storeObject: self]
		ifFalse: [Store updateObject: self].
	isFirstSave
		ifTrue: [self onAfterFirstSave].
	self onAfterSave.
	self] in StafferUserModel(SDActiveRecord)>>save
	Receiver: 'Server 1'
	Arguments and temporary variables: 
		isFirstSave: 	#(true)
	Receiver's instance variables: 
		id: 	'9vv6p02bvndmgyxapevq4gxod'
		createdOn: 	2011-09-09T13:59:21-04:00
		updatedOn: 	2011-09-09T13:59:15-04:00
		version: 	0
		isNew: 	true
		abTests: 	nil
		isReal: 	true
		termsOfService: 	nil
		contactInfo: 	a StafferContactInfoModel
		password: 	nil
		currentCamp: 	a StafferCampModel
		views: 	a SmallDictionary(#activityList->true #dashboard->true #employeeList->#L...etc...
		birthDate: 	''
		skills: 	an OrderedCollection(a StafferSkillsModel a StafferSkillsModel a Staffe...etc...
		qualifications: 	a Dictionary(Qualification - 'Serving'->true Qualification - 'S...etc...
		employeeCamps: 	a Set(a StafferCampModel)
		adminCamps: 	a Set()
		plan: 	'Free Trial'
		scheduleModel: 	a StafferEmployeeScheduleModel
		schedulePreferences: 	a StafferUserSchedulePreferences
		userType: 	#demo
		currentSchedule: 	a StafferUserCurrentSchedule
		pendingTrades: 	a SortedCollection()
		notifier: 	a StafferNotifier


[self enter.
	aBlock value] in Monitor>>critical:
	Receiver: a Monitor
	Arguments and temporary variables: 
		aBlock: 	[self validate.
	(isFirstSave := isNew)
		ifTrue: [self onBeforeFirstSa...etc...
	Receiver's instance variables: 
		mutex: 	a Semaphore()
		ownerProcess: 	a Process in Monitor>>exit
		nestingLevel: 	1
		defaultQueue: 	nil
		queueDict: 	nil
		queuesMutex: 	a Semaphore()


BlockClosure>>ensure:
	Receiver: [self enter.
	aBlock value]
	Arguments and temporary variables: 
		aBlock: 	[self exit]
		complete: 	nil
		returnValue: 	nil
	Receiver's instance variables: 
		outerContext: 	Monitor>>critical:
		startpc: 	30
		numArgs: 	0


Monitor>>critical:
	Receiver: a Monitor
	Arguments and temporary variables: 
		aBlock: 	[self validate.
	(isFirstSave := isNew)
		ifTrue: [self onBeforeFirstSa...etc...
	Receiver's instance variables: 
		mutex: 	a Semaphore()
		ownerProcess: 	a Process in Monitor>>exit
		nestingLevel: 	1
		defaultQueue: 	nil
		queueDict: 	nil
		queuesMutex: 	a Semaphore()


StafferUserModel(SDActiveRecord)>>critical:
	Receiver: 'Server 1'
	Arguments and temporary variables: 
		aBlock: 	[self validate.
	(isFirstSave := isNew)
		ifTrue: [self onBeforeFirstSa...etc...
	Receiver's instance variables: 
		id: 	'9vv6p02bvndmgyxapevq4gxod'
		createdOn: 	2011-09-09T13:59:21-04:00
		updatedOn: 	2011-09-09T13:59:15-04:00
		version: 	0
		isNew: 	true
		abTests: 	nil
		isReal: 	true
		termsOfService: 	nil
		contactInfo: 	a StafferContactInfoModel
		password: 	nil
		currentCamp: 	a StafferCampModel
		views: 	a SmallDictionary(#activityList->true #dashboard->true #employeeList->#L...etc...
		birthDate: 	''
		skills: 	an OrderedCollection(a StafferSkillsModel a StafferSkillsModel a Staffe...etc...
		qualifications: 	a Dictionary(Qualification - 'Serving'->true Qualification - 'S...etc...
		employeeCamps: 	a Set(a StafferCampModel)
		adminCamps: 	a Set()
		plan: 	'Free Trial'
		scheduleModel: 	a StafferEmployeeScheduleModel
		schedulePreferences: 	a StafferUserSchedulePreferences
		userType: 	#demo
		currentSchedule: 	a StafferUserCurrentSchedule
		pendingTrades: 	a SortedCollection()
		notifier: 	a StafferNotifier


StafferUserModel(SDActiveRecord)>>save
	Receiver: 'Server 1'
	Arguments and temporary variables: 
		isFirstSave: 	#(true)
	Receiver's instance variables: 
		id: 	'9vv6p02bvndmgyxapevq4gxod'
		createdOn: 	2011-09-09T13:59:21-04:00
		updatedOn: 	2011-09-09T13:59:15-04:00
		version: 	0
		isNew: 	true
		abTests: 	nil
		isReal: 	true
		termsOfService: 	nil
		contactInfo: 	a StafferContactInfoModel
		password: 	nil
		currentCamp: 	a StafferCampModel
		views: 	a SmallDictionary(#activityList->true #dashboard->true #employeeList->#L...etc...
		birthDate: 	''
		skills: 	an OrderedCollection(a StafferSkillsModel a StafferSkillsModel a Staffe...etc...
		qualifications: 	a Dictionary(Qualification - 'Serving'->true Qualification - 'S...etc...
		employeeCamps: 	a Set(a StafferCampModel)
		adminCamps: 	a Set()
		plan: 	'Free Trial'
		scheduleModel: 	a StafferEmployeeScheduleModel
		schedulePreferences: 	a StafferUserSchedulePreferences
		userType: 	#demo
		currentSchedule: 	a StafferUserCurrentSchedule
		pendingTrades: 	a SortedCollection()
		notifier: 	a StafferNotifier


StafferSidebar>>saveSidebarItem
	Receiver: a StafferSidebar
	Arguments and temporary variables: 

	Receiver's instance variables: 
		decoration: 	a WAValueHolder contents: a StafferSidebar
		searchTerms: 	nil
		copyItem: 	a StafferCopySidebarItem
		button: 	a StafferButton
		employeeList: 	a StafferEmployeeList
		dwm: 	#Day


StafferSidebar>>saveEmployeeDetails
	Receiver: a StafferSidebar
	Arguments and temporary variables: 

	Receiver's instance variables: 
		decoration: 	a WAValueHolder contents: a StafferSidebar
		searchTerms: 	nil
		copyItem: 	a StafferCopySidebarItem
		button: 	a StafferButton
		employeeList: 	a StafferEmployeeList
		dwm: 	#Day


[self saveEmployeeDetails] in [html anchor
		onClick: (html jQuery ajax
				serializeForm: (html jQuery id: 'employee-details'));
		
		callback: [self saveEmployeeDetails];
		
		with: [html span class: 'button';
				
				with: [html span: 'Save']].
	html anchor
		callback: [self showEmployeeList];
		
		with: [html span class: 'cancel';
				 with: 'Cancel']] in StafferSidebar>>renderEmployeeSaveButton:
	Receiver: a StafferSidebar
	Arguments and temporary variables: 

	Receiver's instance variables: 
		decoration: 	a WAValueHolder contents: a StafferSidebar
		searchTerms: 	nil
		copyItem: 	a StafferCopySidebarItem
		button: 	a StafferButton
		employeeList: 	a StafferEmployeeList
		dwm: 	#Day


BlockClosure>>valueWithPossibleArguments:
	Receiver: [self saveEmployeeDetails]
	Arguments and temporary variables: 
		anArray: 	#(nil)
		args: 	#()
	Receiver's instance variables: 
		outerContext: 	[html anchor
		onClick: (html jQuery ajax
				serializeForm: (htm...etc...
		startpc: 	122
		numArgs: 	0


WAActionCallback>>evaluateWithArgument:
	Receiver: a WAActionCallback
	Arguments and temporary variables: 
		anObject: 	nil
	Receiver's instance variables: 
		key: 	'23'
		block: 	[self saveEmployeeDetails]


WAActionCallback(WACallback)>>evaluateWithFieldValues:
	Receiver: a WAActionCallback
	Arguments and temporary variables: 
		anOrderedCollection: 	#(nil)
	Receiver's instance variables: 
		key: 	'23'
		block: 	[self saveEmployeeDetails]


[:callback | callback
		evaluateWithFieldValues: (fields allAt: callback key)] in WACallbackRegistry>>handle:
	Receiver: a WACallbackRegistry
	Arguments and temporary variables: 
		fields: 	a WAActionCallback
		callback: 	a WAMergedRequestFields
	Receiver's instance variables: 
		callbacks: 	a Dictionary('1'->a WAActionCallback '100'->a WAValuesCallback '103'...etc...
		nextKey: 	123


Array(SequenceableCollection)>>do:
	Receiver: an Array(a WAActionCallback)
	Arguments and temporary variables: 
		aBlock: 	[:callback | callback
		evaluateWithFieldValues: (fields allAt: callbac...etc...
		index: 	1
		indexLimiT: 	1
	Receiver's instance variables: 
an Array(a WAActionCallback)

WACallbackRegistry>>handle:
	Receiver: a WACallbackRegistry
	Arguments and temporary variables: 
		aRequestContext: 	a WARequestContext url: '/?_s=H3Sgtd0viR_632XM&_k=LNZE2AFHfz1V...etc...
		set: 	a Set(a WAActionCallback)
		fields: 	a WAMergedRequestFields
	Receiver's instance variables: 
		callbacks: 	a Dictionary('1'->a WAActionCallback '100'->a WAValuesCallback '103'...etc...
		nextKey: 	123


[self renderContext callbacks handle: self requestContext] in [self
		withNotificationHandlerDo: [self renderContext callbacks handle: self requestContext].
	(WAVisiblePresenterGuide client: WATaskVisitor new)
		start: self presenter] in WAActionPhaseContinuation>>runCallbacks
	Receiver: a WAActionPhaseContinuation
	Arguments and temporary variables: 

	Receiver's instance variables: 
		states: 	a WASnapshot
		renderContext: 	a WARenderContext



--- The full stack ---
MethodContext class(Object)>>error:
MethodContext class(ContextPart class)>>basicNew:
MethodContext(Object)>>sandstoneDeepCopyVisits:
BlockClosure(Object)>>sandstoneDeepCopyVisits:
RangeConstraint(Object)>>sandstoneDeepCopyVisits:
GregorianCalendar(Object)>>sandstoneDeepCopyVisits:
StaticYearlyCalendar(Object)>>sandstoneDeepCopyVisits:
StaticMonthlyCalendar(Object)>>sandstoneDeepCopyVisits:
StaticMonthlyCalendar(Object)>>sandstoneDeepCopyVisits:
StaticMonthlyCalendar(Object)>>sandstoneDeepCopyVisits:
StaticMonthlyCalendar(Object)>>sandstoneDeepCopyVisits:
StaticCalendarDay(Object)>>sandstoneDeepCopyVisits:
StafferDateAndTime(Object)>>sandstoneDeepCopyVisits:
StafferCampModel(Object)>>sandstoneDeepCopyVisits:
StafferCampModel(SDActiveRecord)>>sandstoneDeepCopy
SDFileStore>>storeObject:
[self validate.
	(isFirstSave := isNew)
		ifTrue: [self onBeforeFirstSave].
	self onBeforeSave.
	isFirstSave
		ifTrue: [Store storeObject: self]
		ifFalse: [Store updateObject: self].
	isFirstSave
		ifTrue: [self onAfterFirstSave].
	self onAfterSave.
	self] in StafferCampModel(SDActiveRecord)>>save
[self enter.
	aBlock value] in Monitor>>critical:
BlockClosure>>ensure:
Monitor>>critical:
StafferCampModel(SDActiveRecord)>>critical:
StafferCampModel(SDActiveRecord)>>save
StafferUserModel>>onBeforeSave
[self validate.
	(isFirstSave := isNew)
		ifTrue: [self onBeforeFirstSave].
	self onBeforeSave.
	isFirstSave
		ifTrue: [Store storeObject: self]
		ifFalse: [Store updateObject: self].
	isFirstSave
		ifTrue: [self onAfterFirstSave].
	self onAfterSave.
	self] in StafferUserModel(SDActiveRecord)>>save
[self enter.
	aBlock value] in Monitor>>critical:
BlockClosure>>ensure:
Monitor>>critical:
StafferUserModel(SDActiveRecord)>>critical:
StafferUserModel(SDActiveRecord)>>save
StafferSidebar>>saveSidebarItem
StafferSidebar>>saveEmployeeDetails
[self saveEmployeeDetails] in [html anchor
		onClick: (html jQuery ajax
				serializeForm: (html jQuery id: 'employee-details'));
		
		callback: [self saveEmployeeDetails];
		
		with: [html span class: 'button';
				
				with: [html span: 'Save']].
	html anchor
		callback: [self showEmployeeList];
		
		with: [html span class: 'cancel';
				 with: 'Cancel']] in StafferSidebar>>renderEmployeeSaveButton:
BlockClosure>>valueWithPossibleArguments:
WAActionCallback>>evaluateWithArgument:
WAActionCallback(WACallback)>>evaluateWithFieldValues:
[:callback | callback
		evaluateWithFieldValues: (fields allAt: callback key)] in WACallbackRegistry>>handle:
Array(SequenceableCollection)>>do:
WACallbackRegistry>>handle:
[self renderContext callbacks handle: self requestContext] in [self
		withNotificationHandlerDo: [self renderContext callbacks handle: self requestContext].
	(WAVisiblePresenterGuide client: WATaskVisitor new)
		start: self presenter] in WAActionPhaseContinuation>>runCallbacks
 - - - - - - - - - - - - - - -  
			- - - - - - - - - - - - - - - - - -
BlockClosure>>on:do:
WAActionPhaseContinuation(WARenderLoopContinuation)>>withNotificationHandlerDo:
[self
		withNotificationHandlerDo: [self renderContext callbacks handle: self requestContext].
	(WAVisiblePresenterGuide client: WATaskVisitor new)
		start: self presenter] in WAActionPhaseContinuation>>runCallbacks
BlockClosure>>ensure:
WAActionPhaseContinuation>>runCallbacks
WAActionPhaseContinuation>>handleRequest
[self handleRequest] in WAActionPhaseContinuation(WASessionContinuation)>>basicValue
BlockClosure>>on:do:
WAActionPhaseContinuation(WASessionContinuation)>>withUnregisteredHandlerDo:
WAActionPhaseContinuation(WASessionContinuation)>>basicValue
WAActionPhaseContinuation(WASessionContinuation)>>value
StafferSession(WASession)>>handleFiltered:
WAMutualExclusionFilter(WARequestFilter)>>handleFiltered:
[super handleFiltered: aRequestContext] in WAMutualExclusionFilter>>handleFiltered:
BlockClosure>>ensure:
[owner := process.
	aBlock
		ensure: [owner := nil]] in WAMutex>>critical:
[caught := true.
	self wait.
	blockValue := mutuallyExcludedBlock value] in Semaphore>>critical:
BlockClosure>>ensure:
Semaphore>>critical:
WAMutex>>critical:
WAMutualExclusionFilter>>handleFiltered:
[self filter handleFiltered: aRequestContext] in StafferSession(WARequestHandler)>>handle:
BlockClosure>>on:do:
WACurrentRequestContext class(WADynamicVariable class)>>use:during:
[WACurrentRequestContext use: self during: aBlock] in WARequestContext>>push:while:
BlockClosure>>ensure:
WARequestContext>>push:while:
StafferSession(WARequestHandler)>>handle:
WAApplication(WARegistry)>>dispatch:to:
WAApplication(WARegistry)>>handleKeyed:with:
WAApplication(WARegistry)>>handleFiltered:
WAApplication>>handleFiltered:
WAExceptionFilter(WARequestFilter)>>handleFiltered:
[super handleFiltered: aRequestContext] in WAExceptionFilter>>handleFiltered:
BlockClosure>>on:do:
WADebugErrorHandler(WAExceptionHandler)>>handleExceptionsDuring:
WADebugErrorHandler class(WAExceptionHandler class)>>handleExceptionsDuring:context:
WAExceptionFilter>>handleFiltered:
[self filter handleFiltered: aRequestContext] in WAApplication(WARequestHandler)>>handle:
BlockClosure>>on:do:
WACurrentRequestContext class(WADynamicVariable class)>>use:during:
[WACurrentRequestContext use: self during: aBlock] in WARequestContext>>push:while:
BlockClosure>>ensure:
WARequestContext>>push:while:
WAApplication(WARequestHandler)>>handle:
[self requestHandler handle: aRequestContext] in WAComancheAdaptor(WAServerAdaptor)>>handleRequest:
BlockClosure>>on:do:
WAComancheAdaptor(WAServerAdaptor)>>handleRequest:
WAComancheAdaptor(WAServerAdaptor)>>handle:
[self handle: context;
		 responseFrom: context] in WAComancheAdaptor(WAServerAdaptor)>>process:
BlockClosure>>ensure:
WAComancheAdaptor(WAServerAdaptor)>>process:
WAComancheAdaptor>>processHttpRequest:
HttpService>>processHttpRequest:
[self class current: self.
	HttpRequest current: request.
	self target processHttpRequest: request] in HttpAdaptor>>dispatchRequest:
BlockClosure>>on:do:
HttpService>>handleDispatchErrorsIn:
HttpAdaptor>>dispatchRequest:
[response := self dispatchRequest: request.
	self
		addConnectionHeaders: response
		request: request
		count: count.
	(self writeResponse: response for: request)
		ifFalse: [^ self].
	self doPostProcessingFor: request response: response] in [[[request := self readRequest]
		on: Error
		do: [:ex | continue := false].
	continue
		ifTrue: [Bindings
				clamp: [response := self dispatchRequest: request.
					self
						addConnectionHeaders: response
						request: request
						count: count.
					(self writeResponse: response for: request)
						ifFalse: [^ self].
					self doPostProcessingFor: request response: response].
			count := count + 1.
			continue := response isPersistent
						and: [count < limit]].
	continue] whileTrue.
	nil] in HttpAdaptor>>beginConversation
BlockClosure>>on:do:
BlockClosure>>valueWithBindingsContext:
BlockClosure>>valueWithBindings:
BindingsAccessor>>clamp:
[[[request := self readRequest]
		on: Error
		do: [:ex | continue := false].
	continue
		ifTrue: [Bindings
				clamp: [response := self dispatchRequest: request.
					self
						addConnectionHeaders: response
						request: request
						count: count.
					(self writeResponse: response for: request)
						ifFalse: [^ self].
					self doPostProcessingFor: request response: response].
			count := count + 1.
			continue := response isPersistent
						and: [count < limit]].
	continue] whileTrue.
	nil] in HttpAdaptor>>beginConversation
BlockClosure>>ensure:
HttpAdaptor>>beginConversation
HttpAdaptor class>>readAndWriteTo:service:
HttpAdaptor class>>readAndWriteToSocket:service:
HttpService>>serve:
[self serve: aSocket] in HttpService(TcpService)>>value:
BlockClosure>>on:do:
BlockClosure>>valueWithBindingsContext:
BlockClosure>>valueWithBindings:
BindingsAccessor>>clamp:
[Bindings clamp: self] in BlockClosure>>newProcessWithClampedBindings:
BlockClosure>>on:do:
BlockClosure>>valueWithBindingsContext:
BlockClosure>>valueWithBindings:
[self valueWithBindings: dynamicBindings] in BlockClosure>>newProcessWithBindings:
[self value.
	Processor terminateActive] in BlockClosure>>newProcess
------------------------------------------------------------


