[BUG] OmniBase 'Improper store into indexable object'

Derek Brans brans at nerdonawire.com
Fri Jul 4 17:58:10 UTC 2003


Below is code that produces an error.  You can add this method to OmniBase on the class side and run it.

test21
 "test if btrees mark themselves dirty when they aren't persistent"
 | db col btree |
 ^ [db _ OmniBase openOn: self testDir.
 [btree _ OmniBase newBTreeDictionary: 5.
 btree at: 'test2' put: 'item2'.
 col _ OrderedCollection new.
 col add: btree.
 OmniBase root at: 'col' put: col.
 ]
  evaluateAndCommitIn: db newTransaction.
 [btree _ (OmniBase root at: 'col') first. "Craps out here"
 btree at: 'test1' put: 'item1'.
 ]
  evaluateAndCommitIn: db newTransaction.
 [btree _ (OmniBase root at: 'col') first.
 ((btree at: 'test1')
   = 'item1' and: [(btree at: 'test2') = 'item2'])
  ifFalse: [self error: 'Object was not stored']]
  evaluateIn: db newTransaction]
  ensure: [db close]

Here's the stack trace:

VM: Win32 - Squeak3.4 of 1 March 2003 [latest update: #5170]
Image: Squeak3.5 [latest update: #5180]

ByteArray(Object)>>error:
 Receiver: a ByteArray(58 0 0 0 0)
 Arguments and temporary variables: 
  aString:  'Improper store into indexable object'
 Receiver's instance variables: 
a ByteArray(58 0 0 0 0)

ByteArray(Object)>>errorImproperStore
 Receiver: a ByteArray(58 0 0 0 0)
 Arguments and temporary variables: 

 Receiver's instance variables: 
a ByteArray(58 0 0 0 0)

ByteArray(Object)>>basicAt:put:
 Receiver: a ByteArray(58 0 0 0 0)
 Arguments and temporary variables: 
  index:  2
  value:  -50
 Receiver's instance variables: 
a ByteArray(58 0 0 0 0)

ByteArray class(Object class)>>odbLoadVariables:classInfo:
 Receiver: ByteArray
 Arguments and temporary variables: 
  deserializer:  an ODBDeserializer
  classInfo:  an ODBClassDescription
  stream:  an ODBMemoryReadStream
  order:  nil
  iSize:  nil
  object:  a ByteArray(58 0 0 0 0)
  basicSize:  5
  varArray:  nil
  i:  2
  iLimiT:  nil
 Receiver's instance variables: 
  superclass:  ArrayedCollection
  methodDict:  a MethodDictionary(#asBtreeKeyOfSize:->a CompiledMethod (198) #asBy...etc...
  format:  1026
  instanceVariables:  nil
  organization:  ('accessing' atAllPut: byteAt: byteAt:put: byteSize bytesPerEleme...etc...
  subclasses:  #(CompiledMethod CompiledApplescript ExternalAddress UUID)
  name:  #ByteArray
  classPool:  a Dictionary()
  sharedPools:  nil
  environment:  nil
  category:  nil


--- The full stack ---
ByteArray(Object)>>error:
ByteArray(Object)>>errorImproperStore
ByteArray(Object)>>basicAt:put:
ByteArray class(Object class)>>odbLoadVariables:classInfo:
 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ODBDeserializer>>newObjectNewClass
ODBNewObjectNewClass class>>odbDeserialize:
ODBDeserializer>>nextObject
Array class>>odbDeserialize:
ODBDeserializer>>nextObject
ODBSortedDictionary class(Object class)>>odbLoadVariables:classInfo:
ODBDeserializer>>newObjectNewClass
ODBNewObjectNewClass class>>odbDeserialize:
ODBDeserializer>>nextObject
ODBBTreeDictionary class(Object class)>>odbLoadVariables:classInfo:
ODBDeserializer>>newObjectNewClass
ODBNewObjectNewClass class>>odbDeserialize:
ODBDeserializer>>nextObject
[] in OrderedCollection class>>odbDeserialize:
SmallInteger(Integer)>>timesRepeat:
OrderedCollection class>>odbDeserialize:
ODBDeserializer>>nextObject
ODBDeserializer>>deserializeFrom:referenceManager:transaction:
ODBSerializedDBObjectWithoutReferences>>makeTransactionObject:
[] in ODBLocalTransaction(ODBTransaction)>>transactionObjectAt:
BlockContext>>ifCurtailed:
[] in ODBLocalTransaction(ODBTransaction)>>transactionObjectAt:
BlockContext>>ensure:
BlockContext>>valueUnpreemptively
ODBLocalTransaction(ODBTransaction)>>transactionObjectAt:
ODBDemandLoader>>getObject
ODBDemandLoader>>perform:withArguments:
ODBReference>>doesNotUnderstand:
[] in OmniBase class>>DoIt
BlockContext>>ifCurtailed:
[] in BlockContext>>evaluateAndCommitIn:
BlockContext>>ensure:
BlockContext>>evaluateAndCommitIn:
[] in OmniBase class>>DoIt
BlockContext>>ensure:
OmniBase class>>DoIt
Compiler>>evaluate:in:to:notifying:ifFail:
[] in TextMorphEditor(ParagraphEditor)>>evaluateSelection
BlockContext>>on:do:
TextMorphEditor(ParagraphEditor)>>evaluateSelection
TextMorphEditor(ParagraphEditor)>>doIt
[] in TextMorphEditor(ParagraphEditor)>>doIt:
TextMorphEditor(Controller)>>terminateAndInitializeAround:
TextMorphEditor(ParagraphEditor)>>doIt:
TextMorphEditor(ParagraphEditor)>>dispatchOnCharacter:with:
TextMorphEditor>>dispatchOnCharacter:with:
TextMorphEditor(ParagraphEditor)>>readKeyboard
TextMorphEditor>>readKeyboard
[] in TextMorphForEditView(TextMorph)>>keyStroke:
TextMorphForEditView(TextMorph)>>handleInteraction:fromEvent:
TextMorphForEditView>>handleInteraction:fromEvent:
TextMorphForEditView(TextMorph)>>keyStroke:
TextMorphForEditView>>keyStroke:
TextMorphForEditView(TextMorph)>>handleKeystroke:
KeyboardEvent>>sentTo:
TextMorphForEditView(Morph)>>handleEvent:
TextMorphForEditView(Morph)>>handleFocusEvent:
-- and more not shown --

Derek Brans
Nerd on a Wire
Web design that's anything but square
http://www.nerdonawire.com 
mailto: brans at nerdonawire.com
phone: 604.874.6463
toll-free: 1-877-NERD-ON-A-WIRE
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20030704/2c0a53e5/attachment.htm


More information about the Squeak-dev mailing list