[SqueakDBX] Connection not Valid problem

Mariano Martinez Peck marianopeck at gmail.com
Sun Oct 4 22:30:29 UTC 2009


On Sun, Oct 4, 2009 at 5:39 PM, John Toohey <jt at parspro.com> wrote:

> Just built a new image with the native driver installed, instead of the DBX
> one. Results are the same, so its something in my code. I'll keep debugging
> and let you know how I progress.
>
>
I imagined that. That's why asked. If I were you I would send and email to
glorp mailing list: glorp-group at googlegroups.com
Alan is kind and helpful.

Let me know the progress.

Best

Mariano


> On Sun, Oct 4, 2009 at 11:22, John Toohey <jt at parspro.com> wrote:
>
>> Yes, it was working fine with Glorp + the native driver. This is the Glorp
>> debug :-Begin Transaction
>> select nextval('TOURNAMENTMARKETS_id_SEQ') from pg_attribute limit 1
>> INSERT INTO TOURNAMENTS
>> (bookmaker,event,name,status,fee,prizewin,prizeplace,payout,buyin,opentime,closetime,tournamenttype,maxpunters,odds,favourite,version)
>>  VALUES (1,1,'T-XY','Unpublished',5,0,0,100,false,'2009-10-04
>> 12:00:00','2009-10-04 12:00:00','Pari-Mutual',100,NULL,NULL,1)10:46:02 am -
>> GlorpDatabaseWriteError: RECOVERABLE OpenDBX: ERROR:  null value in column
>> "id" violates not-null constraint
>> Rollback Transaction
>>
>> The nextval function is being passed the wrong sequence table name, it
>> should be TOURNAMENT_id_SEQ. This is the save code :-
>>
>> status ifTrue:[
>>  markets := nil.
>> [
>> self session dataStore commit: [self session dataStore register:
>> tournament].
>>  self session dataStore refresh: tournament
>> ]ifError:[
>> :error | JulietLogger log: error. status := false. self halt]
>>  ].
>>
>> And this is the table descriptor :-
>>
>> tableForTOURNAMENTS: aTable
>> |bookieId oddsTableId eventId|
>>
>>     (aTable createFieldNamed: #id type: platform sequence) bePrimaryKey.
>>     bookieId := aTable createFieldNamed: #bookmaker type: platform int4.
>>     oddsTableId := aTable createFieldNamed: #oddstable type: platform
>> int4.
>>     eventId := aTable createFieldNamed: #event type: platform int4.
>>
>> aTable
>>   createFieldNamed: #name type: (platform varchar: 32);
>>   createFieldNamed: #status type: (platform varchar: 32);
>>        createFieldNamed: #fee type: (platform integer);
>>        createFieldNamed: #prizewin type: (platform integer);
>>        createFieldNamed: #prizeplace type: (platform integer);
>>        createFieldNamed: #payout type: (platform integer);
>>    createFieldNamed: #buyin type: (platform boolean);
>>  createFieldNamed: #opentime type: (platform timestamp);
>> createFieldNamed: #closetime type: (platform timestamp);
>>  createFieldNamed: #tournamenttype type: (platform varchar: 32);
>>        createFieldNamed: #maxpunters type: (platform integer);
>>        createFieldNamed: #odds type: (platform integer);
>> createFieldNamed: #favourite type: (platform varchar: 4);
>>  createFieldNamed: #version type: (platform versionFieldFor: platform
>> int4);
>> addForeignKeyFrom: bookieId
>>            to: ((self tableNamed: #BOOKMAKERS) fieldNamed: 'id');
>> addForeignKeyFrom: eventId
>>            to: ((self tableNamed: #EVENTS) fieldNamed: 'id');
>> addForeignKeyFrom: oddsTableId
>>            to: ((self tableNamed: #ODDSTABLES) fieldNamed: 'id').
>> (aTable fieldNamed: 'version') beLockKey
>>
>>
>> Its very strange, as it only seems to be this table that is causing the
>> problem.
>>
>> On Sat, Oct 3, 2009 at 19:05, Mariano Martinez Peck <
>> marianopeck at gmail.com> wrote:
>>
>>>
>>>
>>> On Sat, Oct 3, 2009 at 1:39 PM, John Toohey <jt at parspro.com> wrote:
>>>
>>>> Okay, I think now I know what is going on. In my Seaside app, I allow
>>>> the user to logout, and this method disconnects from the DB, and expires the
>>>> Seaside session. I also have an expiration timeout set on the session. I
>>>> think that Seaside is sending me a #unregistered message, after I have
>>>> logged back in, and this method is calling #disconnect. I have removed some
>>>> of the session handling code, and things are working a lot better now.
>>>>
>>>
>>> Excellent! Good research :)
>>>
>>>
>>>> However, I have know noticed something that was working fine with Glorp,
>>>> and seems broken now.
>>>>
>>>
>>> when was woring? when you used Glorp + PostgreSQL native driver ? or
>>> before doing the changes you said about the seaside session ?
>>>
>>>
>>>> One of my classes that inserts new records in the DB is missing the id
>>>> (sequence, pk) field. I can see from the GlorpDBX debug, that a call is made
>>>> to Postgres for the next sequence number, but the insert statement is
>>>> missing the id field. Here is the trace messages :-
>>>>
>>>> odbx_query: called with values: handle = 380908736 query = select
>>>> nextval('TOURNAMENTMARKETS_id_SEQ') from pg_attribute limit 1
>>>> odbx_result: called with values: handle = 380908736 chunk = 0
>>>> odbx_result call return: 3
>>>> odbx_result resultSet handle returned: 381100928
>>>> odbx_column_count: called with values: resultSet handle = 381100928
>>>> odbx_row_fetch: called with values: resultSet handle = 381100928
>>>> odbx_row_fetch call returned 1
>>>> odbx_row_fetch: called with values: resultSet handle = 381100928
>>>> odbx_row_fetch call returned 0
>>>> odbx_result_finish: called with values: resultSet handle = 381100928
>>>> odbx_result: called with values: handle = 380908736 chunk = 0
>>>> odbx_result call return: 0
>>>> odbx_result resultSet handle returned: 0
>>>> odbx_query: called with values: handle = 380908736 query = INSERT INTO
>>>> TOURNAMENTS
>>>> (bookmaker,event,name,status,fee,prizewin,prizeplace,payout,buyin,opentime,closetime,tournamenttype,maxpunters,odds,favourite,version)
>>>>  VALUES (1,1,'Tourney-A1','Unpublished',5,0,0,76,false,'2009-10-03
>>>> 12:00:00','2009-10-03 12:00:00','Pari-Mutual',90,NULL,NULL,1)
>>>> odbx_result: called with values: handle = 380908736 chunk = 0
>>>> odbx_result call return: -1
>>>> odbx_result: called with values: handle = 380908736 chunk = 0
>>>> odbx_result call return: 0
>>>> odbx_result resultSet handle returned: 0
>>>> 12:27:22 pm - GlorpDatabaseWriteError: RECOVERABLE OpenDBX: ERROR:  null
>>>> value in column "id" violates not-null constraint
>>>>
>>>>
>>>
>>> This is weird. The query select nextval('TOURNAMENTMARKETS_id_SEQ') from
>>> pg_attribute limit 1
>>> works perfect using SqueakDBX (I have just tested it).
>>>
>>> Now I wonder why Glorp didn't put the id in the query...do you know if
>>> this was working when you were using Glorp + PostgreSQL native driver ? Just
>>> to see where the cause of the problem can be. Perhaps it is a GLorp related
>>> problem that we should ask in Glorp mailing list.
>>>
>>> Do you know that there is also (I think) some debug to enable in Glorp ?
>>> because what you send us is the SqueakDBX driver log, not Glorp.
>>>
>>> Can you send us the mappings for the class/table TOURNAMENTS ?
>>>
>>> which is the message you are sending to Glorp so that it generates the
>>> insert ?
>>>
>>> Best,
>>>
>>> Mariano
>>>
>>>
>>>
>>>>
>>>> On Thu, Oct 1, 2009 at 15:33, Mariano Martinez Peck <
>>>> marianopeck at gmail.com> wrote:
>>>>
>>>>> I fordward the email to the list.
>>>>>
>>>>> On Thu, Oct 1, 2009 at 4:05 PM, John Toohey <jt at parspro.com> wrote:
>>>>>
>>>>>> Hey,Haven't loaded the latest yet, as I'm still debugging my
>>>>>> connection timeout issue.
>>>>>>
>>>>>
>>>>> Ok, let's go step by step :)
>>>>>
>>>>>
>>>>>> No closer to the cause, but I have a better idea of what is happening
>>>>>> now. In all my methods in my DB class, I call a method to get the
>>>>>> glorpSession. In this method, I have a check to see if I am still logged in,
>>>>>> and break if I am not. Now I see that, as I lazily initialize objects that
>>>>>> are referred by foreign keys, the Glorp Proxy will make a DB call on my
>>>>>> behalf, whenever I reference one of these objects. The Proxy calls
>>>>>> #basicExecuteSQLString in the DataAccessor, and that calls #execute in
>>>>>> DBXConnection. That is where the code check if the connection is open, and
>>>>>> fails there.
>>>>>>
>>>>>> Do you have any suggestions about how I can hook into that, and
>>>>>> perhaps try to re-connect on that error?
>>>>>>
>>>>>>
>>>>>>
>>>>> Great progress!!!  I am glad at least that our error handling is
>>>>> working properly ;)
>>>>>
>>>>> The thing is that any thing you do, is a kind of hack. For example, I
>>>>> cannot reopen a connection in SqueakDBX in that case.  Perhaps that change
>>>>> should be done in Glorp?
>>>>>
>>>>> A hack could be to reopen the connection in #basicExecuteSQLString when
>>>>> that errors happen. Remember you already have a reOpen method in
>>>>> DBXConnection. I can add a reConnect if necessary. They good this that this
>>>>> is very easy, as you don't need to send the querySettings again as the
>>>>> connection already has it as an instance variable :)
>>>>>
>>>>> Anyway, I don't understand something. The same connection was perfect
>>>>> some time ago it fails, Ok ?   so...if it then disconnect or close, who
>>>>> closes that ? the GC? you ? glorp ?
>>>>> We don't handle timeouts or something like that and close the
>>>>> connection.
>>>>>
>>>>> Cheers,
>>>>>
>>>>> Mariano
>>>>>
>>>>>
>>>>>
>>>>>>
>>>>>> On Wed, Sep 30, 2009 at 11:34, Mariano Martinez Peck <
>>>>>> marianopeck at gmail.com> wrote:
>>>>>>
>>>>>>> Of course it would be excellent if you can run all tests not only the
>>>>>>> one with the problem so that to be sure I didn't break something else ;)
>>>>>>>
>>>>>>> cheers,
>>>>>>>
>>>>>>> mariano
>>>>>>>
>>>>>>> On Wed, Sep 30, 2009 at 12:16 PM, Mariano Martinez Peck <
>>>>>>> marianopeck at gmail.com> wrote:
>>>>>>>
>>>>>>>> Done:
>>>>>>>>
>>>>>>>> Name: OpenDBX-Core-MarianoMartinezPeck.231
>>>>>>>> Author: MarianoMartinezPeck
>>>>>>>> Time: 30 September 2009, 12:14:49 pm
>>>>>>>> UUID: 780ee5d8-3d5f-0e46-b3c0-d22ca512b498
>>>>>>>> Ancestors: OpenDBX-Core-Mariano.230
>>>>>>>>
>>>>>>>> Fix to possible bug. Now DBXPlatform uses the timeout of the
>>>>>>>> QuerySetttings instead of the default.
>>>>>>>>
>>>>>>>>
>>>>>>>> Just download that version from monticello.
>>>>>>>>
>>>>>>>> However, here at work I only have Sqlite3. So, I should test with
>>>>>>>> all backend in Linux and Windows tonight at home.
>>>>>>>>
>>>>>>>> Tell me if it works.
>>>>>>>>
>>>>>>>> Best
>>>>>>>>
>>>>>>>> Mariano
>>>>>>>>
>>>>>>>>
>>>>>>>> On Wed, Sep 30, 2009 at 11:23 AM, John Toohey <jt at parspro.com>wrote:
>>>>>>>>
>>>>>>>>> Good, let me know when there is an update, and how to install it,
>>>>>>>>> and I can test again.
>>>>>>>>>
>>>>>>>>> On Wed, Sep 30, 2009 at 09:37, Mariano Martinez Peck <
>>>>>>>>> marianopeck at gmail.com> wrote:
>>>>>>>>>
>>>>>>>>>> Thanks John. I think you found a bug ;)    The weird thing is that
>>>>>>>>>> I cannot reproduce it here. Perhaps it is because of the client library for
>>>>>>>>>> Mac. It's the only difference I see.
>>>>>>>>>>
>>>>>>>>>> Tonight I will test the fix I have just did and if everything is
>>>>>>>>>> ok I will commit it.
>>>>>>>>>>
>>>>>>>>>> Thank you very much.
>>>>>>>>>>
>>>>>>>>>> On Wed, Sep 30, 2009 at 10:02 AM, John Toohey <jt at parspro.com>wrote:
>>>>>>>>>>
>>>>>>>>>>> This is the full stack :-
>>>>>>>>>>> UndefinedObject(Object)>>doesNotUnderstand: #asMiliseconds
>>>>>>>>>>> Receiver: nil
>>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>>>  aMessage: asMiliseconds
>>>>>>>>>>> exception: MessageNotUnderstood: receiver of "asMiliseconds" is
>>>>>>>>>>> nil
>>>>>>>>>>>  resumeValue: nil
>>>>>>>>>>> Receiver's instance variables:
>>>>>>>>>>> nil
>>>>>>>>>>>
>>>>>>>>>>> [] in [] in
>>>>>>>>>>> DBXPostgresPlatform(DBXPlatform)>>processNextResultSet:querySettings:
>>>>>>>>>>> Receiver: a DBXPostgresPlatform
>>>>>>>>>>>  Arguments and temporary variables:
>>>>>>>>>>> aConnection: 0
>>>>>>>>>>>  aQuerySettings: 1
>>>>>>>>>>> returnCode: a DBXConnection
>>>>>>>>>>>  handle: a DBXQuerySettings
>>>>>>>>>>> code: #(1)
>>>>>>>>>>>  Receiver's instance variables:
>>>>>>>>>>> a DBXPostgresPlatform
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> DBXPostgresPlatform(DBXPlatform)>>nextResultSet:querySettings:onReturn:
>>>>>>>>>>>  Receiver: a DBXPostgresPlatform
>>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>>> aConnection: a DBXConnection
>>>>>>>>>>>  aQuerySettings: a DBXQuerySettings
>>>>>>>>>>> aBlock: [closure] in [] in
>>>>>>>>>>> DBXPostgresPlatform(DBXPlatform)>>processNextResultS...etc...
>>>>>>>>>>>  handle: 0
>>>>>>>>>>> err: 1
>>>>>>>>>>>  handleArray: a WordArray(0)
>>>>>>>>>>> Receiver's instance variables:
>>>>>>>>>>> a DBXPostgresPlatform
>>>>>>>>>>>
>>>>>>>>>>> [] in
>>>>>>>>>>> DBXPostgresPlatform(DBXPlatform)>>processNextResultSet:querySettings:
>>>>>>>>>>> Receiver: a DBXPostgresPlatform
>>>>>>>>>>>  Arguments and temporary variables:
>>>>>>>>>>> aConnection: a DBXConnection
>>>>>>>>>>>  aQuerySettings: a DBXQuerySettings
>>>>>>>>>>> returnCode: #(1)
>>>>>>>>>>>  Receiver's instance variables:
>>>>>>>>>>> a DBXPostgresPlatform
>>>>>>>>>>>
>>>>>>>>>>> BlockClosure>>doWhileTrue:
>>>>>>>>>>> Receiver: [closure] in
>>>>>>>>>>> DBXPostgresPlatform(DBXPlatform)>>processNextResultSet:querySettings:
>>>>>>>>>>>  Arguments and temporary variables:
>>>>>>>>>>> conditionBlock: [closure] in
>>>>>>>>>>> DBXPostgresPlatform(DBXPlatform)>>processNextResul...etc...
>>>>>>>>>>>  result: nil
>>>>>>>>>>> Receiver's instance variables:
>>>>>>>>>>>  outerContext:
>>>>>>>>>>> DBXPostgresPlatform(DBXPlatform)>>processNextResultSet:querySetti...etc...
>>>>>>>>>>>  startpc: 91
>>>>>>>>>>> numArgs: 0
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> DBXPostgresPlatform(DBXPlatform)>>processNextResultSet:querySettings:
>>>>>>>>>>> Receiver: a DBXPostgresPlatform
>>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>>>  aConnection: a DBXConnection
>>>>>>>>>>> aQuerySettings: a DBXQuerySettings
>>>>>>>>>>>  returnCode: #(1)
>>>>>>>>>>> Receiver's instance variables:
>>>>>>>>>>> a DBXPostgresPlatform
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> DBXPostgresPlatform(DBXPlatform)>>executeStatement:on:querySettings:
>>>>>>>>>>> Receiver: a DBXPostgresPlatform
>>>>>>>>>>>  Arguments and temporary variables:
>>>>>>>>>>> aString: 'select * from student'
>>>>>>>>>>>  aConnection: a DBXConnection
>>>>>>>>>>> aQuerySettings: a DBXQuerySettings
>>>>>>>>>>>  err: 0
>>>>>>>>>>> result: nil
>>>>>>>>>>>  Receiver's instance variables:
>>>>>>>>>>> a DBXPostgresPlatform
>>>>>>>>>>>
>>>>>>>>>>> DBXConnection>>execute:querySettings:
>>>>>>>>>>> Receiver: a DBXConnection
>>>>>>>>>>>  Arguments and temporary variables:
>>>>>>>>>>> aString: 'select * from student'
>>>>>>>>>>>  aQuerySettings: a DBXQuerySettings
>>>>>>>>>>> aResult: nil
>>>>>>>>>>>  Receiver's instance variables:
>>>>>>>>>>> platform: a DBXPostgresPlatform
>>>>>>>>>>>  settings: a DBXConnectionSettings
>>>>>>>>>>> handle: 3118944
>>>>>>>>>>>  open: a ValueHolder
>>>>>>>>>>> connected: a ValueHolder
>>>>>>>>>>>  result: nil
>>>>>>>>>>>
>>>>>>>>>>> DBXQueryTimeoutTest>>testNoTimeout
>>>>>>>>>>> Receiver: DBXQueryTimeoutTest>>#testNoTimeout
>>>>>>>>>>>  Arguments and temporary variables:
>>>>>>>>>>> conn: a DBXConnection
>>>>>>>>>>>  aQuerySettings: a DBXQuerySettings
>>>>>>>>>>> rows: 5000
>>>>>>>>>>>  Receiver's instance variables:
>>>>>>>>>>> testSelector: #testNoTimeout
>>>>>>>>>>>  facility: a DBXPostgreFacility
>>>>>>>>>>> connection: a DBXConnection
>>>>>>>>>>>
>>>>>>>>>>> DBXQueryTimeoutTest(TestCase)>>performTest
>>>>>>>>>>> Receiver: DBXQueryTimeoutTest>>#testNoTimeout
>>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>>>
>>>>>>>>>>> Receiver's instance variables:
>>>>>>>>>>> testSelector: #testNoTimeout
>>>>>>>>>>>  facility: a DBXPostgreFacility
>>>>>>>>>>> connection: a DBXConnection
>>>>>>>>>>>
>>>>>>>>>>> [] in DBXQueryTimeoutTest(TestCase)>>runCase
>>>>>>>>>>> Receiver: DBXQueryTimeoutTest>>#testNoTimeout
>>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>>>
>>>>>>>>>>> Receiver's instance variables:
>>>>>>>>>>> testSelector: #testNoTimeout
>>>>>>>>>>>  facility: a DBXPostgreFacility
>>>>>>>>>>> connection: a DBXConnection
>>>>>>>>>>>
>>>>>>>>>>> BlockClosure>>ensure:
>>>>>>>>>>> Receiver: [closure] in DBXQueryTimeoutTest(TestCase)>>runCase
>>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>>>  aBlock: [closure] in DBXQueryTimeoutTest(TestCase)>>runCase
>>>>>>>>>>> returnValue: nil
>>>>>>>>>>>  b: nil
>>>>>>>>>>> Receiver's instance variables:
>>>>>>>>>>>  outerContext: DBXQueryTimeoutTest(TestCase)>>runCase
>>>>>>>>>>> startpc: 33
>>>>>>>>>>>  numArgs: 0
>>>>>>>>>>>
>>>>>>>>>>> DBXQueryTimeoutTest(TestCase)>>runCase
>>>>>>>>>>> Receiver: DBXQueryTimeoutTest>>#testNoTimeout
>>>>>>>>>>>  Arguments and temporary variables:
>>>>>>>>>>>
>>>>>>>>>>> Receiver's instance variables:
>>>>>>>>>>>  testSelector: #testNoTimeout
>>>>>>>>>>> facility: a DBXPostgreFacility
>>>>>>>>>>>  connection: a DBXConnection
>>>>>>>>>>>
>>>>>>>>>>> [] in DBXQueryTimeoutTest(TestCase)>>debug
>>>>>>>>>>>  Receiver: DBXQueryTimeoutTest>>#testNoTimeout
>>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>>>
>>>>>>>>>>> Receiver's instance variables:
>>>>>>>>>>> testSelector: #testNoTimeout
>>>>>>>>>>>  facility: a DBXPostgreFacility
>>>>>>>>>>> connection: nil
>>>>>>>>>>>
>>>>>>>>>>> BlockClosure>>ensure:
>>>>>>>>>>> Receiver: [closure] in DBXQueryTimeoutTest(TestCase)>>debug
>>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>>>  aBlock: [closure] in DBXQueryTimeoutTest(TestCase)>>debug
>>>>>>>>>>> returnValue: nil
>>>>>>>>>>>  b: nil
>>>>>>>>>>> Receiver's instance variables:
>>>>>>>>>>>  outerContext: DBXQueryTimeoutTest(TestCase)>>debug
>>>>>>>>>>> startpc: 62
>>>>>>>>>>>  numArgs: 0
>>>>>>>>>>>
>>>>>>>>>>> DBXQueryTimeoutTest(TestCase)>>debug
>>>>>>>>>>> Receiver: DBXQueryTimeoutTest>>#testNoTimeout
>>>>>>>>>>>  Arguments and temporary variables:
>>>>>>>>>>>
>>>>>>>>>>> Receiver's instance variables:
>>>>>>>>>>>  testSelector: #testNoTimeout
>>>>>>>>>>> facility: a DBXPostgreFacility
>>>>>>>>>>>  connection: nil
>>>>>>>>>>>
>>>>>>>>>>> [] in TestRunner>>debugSuite:
>>>>>>>>>>> Receiver: a TestRunner
>>>>>>>>>>>  Arguments and temporary variables:
>>>>>>>>>>> <<error during printing>
>>>>>>>>>>> Receiver's instance variables:
>>>>>>>>>>>  categories: #(#'AST-Tests' #'AutomaticMethodCategorizer-Tests'
>>>>>>>>>>> #'AutomaticMetho...etc...
>>>>>>>>>>>  categoriesSelected: a Set(#'OpenDBX-Core-Tests-Extras'
>>>>>>>>>>> #'OpenDBX-Core-Tests' #'...etc...
>>>>>>>>>>>  classes: {DBXBaseTest . DBXCompleteExamplesTest .
>>>>>>>>>>> DBXConnectionTest . DBXDescri...etc...
>>>>>>>>>>>  classIndex: 0
>>>>>>>>>>> classesSelected: a Set(DBXQueryTimeoutTest DBXResetTestBackend)
>>>>>>>>>>>  failedList: #()
>>>>>>>>>>> failedSelected: nil
>>>>>>>>>>>  errorList: an Array(DBXQueryTimeoutTest>>#testNoTimeout)
>>>>>>>>>>> errorSelected: DBXQueryTimeoutTest>>#testNoTimeout
>>>>>>>>>>>  lastUpdate: 3431753837
>>>>>>>>>>> result: 5 run, 4 passes, 0 expected failures, 0 failures, 1
>>>>>>>>>>> errors, 0 unexpecte...etc...
>>>>>>>>>>>  previousRun: nil
>>>>>>>>>>>
>>>>>>>>>>> OrderedCollection>>do:
>>>>>>>>>>> Receiver: an
>>>>>>>>>>> OrderedCollection(DBXQueryTimeoutTest>>#testNoTimeout)
>>>>>>>>>>>  Arguments and temporary variables:
>>>>>>>>>>> aBlock: [closure] in TestRunner>>debugSuite:
>>>>>>>>>>>  index: 3
>>>>>>>>>>> Receiver's instance variables:
>>>>>>>>>>>  array: an Array(nil nil DBXQueryTimeoutTest>>#testNoTimeout nil
>>>>>>>>>>> nil nil nil nil...etc...
>>>>>>>>>>>  firstIndex: 3
>>>>>>>>>>> lastIndex: 3
>>>>>>>>>>>
>>>>>>>>>>> [] in TestRunner>>basicRunSuite:do:
>>>>>>>>>>> Receiver: a TestRunner
>>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>>>  aTestSuite: a TestSuite
>>>>>>>>>>> aBlock: [closure] in TestRunner>>debugSuite:
>>>>>>>>>>>  Receiver's instance variables:
>>>>>>>>>>> categories: #(#'AST-Tests' #'AutomaticMethodCategorizer-Tests'
>>>>>>>>>>> #'AutomaticMetho...etc...
>>>>>>>>>>>  categoriesSelected: a Set(#'OpenDBX-Core-Tests-Extras'
>>>>>>>>>>> #'OpenDBX-Core-Tests' #'...etc...
>>>>>>>>>>>  classes: {DBXBaseTest . DBXCompleteExamplesTest .
>>>>>>>>>>> DBXConnectionTest . DBXDescri...etc...
>>>>>>>>>>>  classIndex: 0
>>>>>>>>>>> classesSelected: a Set(DBXQueryTimeoutTest DBXResetTestBackend)
>>>>>>>>>>>  failedList: #()
>>>>>>>>>>> failedSelected: nil
>>>>>>>>>>>  errorList: an Array(DBXQueryTimeoutTest>>#testNoTimeout)
>>>>>>>>>>> errorSelected: DBXQueryTimeoutTest>>#testNoTimeout
>>>>>>>>>>>  lastUpdate: 3431753837
>>>>>>>>>>> result: 5 run, 4 passes, 0 expected failures, 0 failures, 1
>>>>>>>>>>> errors, 0 unexpecte...etc...
>>>>>>>>>>>  previousRun: nil
>>>>>>>>>>>
>>>>>>>>>>> BlockClosure>>ensure:
>>>>>>>>>>> Receiver: [closure] in TestRunner>>basicRunSuite:do:
>>>>>>>>>>>  Arguments and temporary variables:
>>>>>>>>>>> aBlock: [closure] in TestRunner>>basicRunSuite:do:
>>>>>>>>>>>  returnValue: nil
>>>>>>>>>>> b: nil
>>>>>>>>>>>  Receiver's instance variables:
>>>>>>>>>>> outerContext: TestRunner>>basicRunSuite:do:
>>>>>>>>>>>  startpc: 51
>>>>>>>>>>> numArgs: 0
>>>>>>>>>>>
>>>>>>>>>>> TestRunner>>basicRunSuite:do:
>>>>>>>>>>> Receiver: a TestRunner
>>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>>>  aTestSuite: a TestSuite
>>>>>>>>>>> aBlock: [closure] in TestRunner>>debugSuite:
>>>>>>>>>>>  Receiver's instance variables:
>>>>>>>>>>> categories: #(#'AST-Tests' #'AutomaticMethodCategorizer-Tests'
>>>>>>>>>>> #'AutomaticMetho...etc...
>>>>>>>>>>>  categoriesSelected: a Set(#'OpenDBX-Core-Tests-Extras'
>>>>>>>>>>> #'OpenDBX-Core-Tests' #'...etc...
>>>>>>>>>>>  classes: {DBXBaseTest . DBXCompleteExamplesTest .
>>>>>>>>>>> DBXConnectionTest . DBXDescri...etc...
>>>>>>>>>>>  classIndex: 0
>>>>>>>>>>> classesSelected: a Set(DBXQueryTimeoutTest DBXResetTestBackend)
>>>>>>>>>>>  failedList: #()
>>>>>>>>>>> failedSelected: nil
>>>>>>>>>>>  errorList: an Array(DBXQueryTimeoutTest>>#testNoTimeout)
>>>>>>>>>>> errorSelected: DBXQueryTimeoutTest>>#testNoTimeout
>>>>>>>>>>>  lastUpdate: 3431753837
>>>>>>>>>>> result: 5 run, 4 passes, 0 expected failures, 0 failures, 1
>>>>>>>>>>> errors, 0 unexpecte...etc...
>>>>>>>>>>>  previousRun: nil
>>>>>>>>>>>
>>>>>>>>>>> TestRunner>>debugSuite:
>>>>>>>>>>> Receiver: a TestRunner
>>>>>>>>>>>  Arguments and temporary variables:
>>>>>>>>>>> aTestSuite: a TestSuite
>>>>>>>>>>>  Receiver's instance variables:
>>>>>>>>>>> categories: #(#'AST-Tests' #'AutomaticMethodCategorizer-Tests'
>>>>>>>>>>> #'AutomaticMetho...etc...
>>>>>>>>>>>  categoriesSelected: a Set(#'OpenDBX-Core-Tests-Extras'
>>>>>>>>>>> #'OpenDBX-Core-Tests' #'...etc...
>>>>>>>>>>>  classes: {DBXBaseTest . DBXCompleteExamplesTest .
>>>>>>>>>>> DBXConnectionTest . DBXDescri...etc...
>>>>>>>>>>>  classIndex: 0
>>>>>>>>>>> classesSelected: a Set(DBXQueryTimeoutTest DBXResetTestBackend)
>>>>>>>>>>>  failedList: #()
>>>>>>>>>>> failedSelected: nil
>>>>>>>>>>>  errorList: an Array(DBXQueryTimeoutTest>>#testNoTimeout)
>>>>>>>>>>> errorSelected: DBXQueryTimeoutTest>>#testNoTimeout
>>>>>>>>>>>  lastUpdate: 3431753837
>>>>>>>>>>> result: 5 run, 4 passes, 0 expected failures, 0 failures, 1
>>>>>>>>>>> errors, 0 unexpecte...etc...
>>>>>>>>>>>  previousRun: nil
>>>>>>>>>>>
>>>>>>>>>>> TestRunner>>debug:
>>>>>>>>>>> Receiver: a TestRunner
>>>>>>>>>>>  Arguments and temporary variables:
>>>>>>>>>>> aTestCase: DBXQueryTimeoutTest>>#testNoTimeout
>>>>>>>>>>>  Receiver's instance variables:
>>>>>>>>>>> categories: #(#'AST-Tests' #'AutomaticMethodCategorizer-Tests'
>>>>>>>>>>> #'AutomaticMetho...etc...
>>>>>>>>>>>  categoriesSelected: a Set(#'OpenDBX-Core-Tests-Extras'
>>>>>>>>>>> #'OpenDBX-Core-Tests' #'...etc...
>>>>>>>>>>>  classes: {DBXBaseTest . DBXCompleteExamplesTest .
>>>>>>>>>>> DBXConnectionTest . DBXDescri...etc...
>>>>>>>>>>>  classIndex: 0
>>>>>>>>>>> classesSelected: a Set(DBXQueryTimeoutTest DBXResetTestBackend)
>>>>>>>>>>>  failedList: #()
>>>>>>>>>>> failedSelected: nil
>>>>>>>>>>>  errorList: an Array(DBXQueryTimeoutTest>>#testNoTimeout)
>>>>>>>>>>> errorSelected: DBXQueryTimeoutTest>>#testNoTimeout
>>>>>>>>>>>  lastUpdate: 3431753837
>>>>>>>>>>> result: 5 run, 4 passes, 0 expected failures, 0 failures, 1
>>>>>>>>>>> errors, 0 unexpecte...etc...
>>>>>>>>>>>  previousRun: nil
>>>>>>>>>>>
>>>>>>>>>>> TestRunner>>errorSelected:
>>>>>>>>>>> Receiver: a TestRunner
>>>>>>>>>>>  Arguments and temporary variables:
>>>>>>>>>>> anInteger: 1
>>>>>>>>>>>  Receiver's instance variables:
>>>>>>>>>>> categories: #(#'AST-Tests' #'AutomaticMethodCategorizer-Tests'
>>>>>>>>>>> #'AutomaticMetho...etc...
>>>>>>>>>>>  categoriesSelected: a Set(#'OpenDBX-Core-Tests-Extras'
>>>>>>>>>>> #'OpenDBX-Core-Tests' #'...etc...
>>>>>>>>>>>  classes: {DBXBaseTest . DBXCompleteExamplesTest .
>>>>>>>>>>> DBXConnectionTest . DBXDescri...etc...
>>>>>>>>>>>  classIndex: 0
>>>>>>>>>>> classesSelected: a Set(DBXQueryTimeoutTest DBXResetTestBackend)
>>>>>>>>>>>  failedList: #()
>>>>>>>>>>> failedSelected: nil
>>>>>>>>>>>  errorList: an Array(DBXQueryTimeoutTest>>#testNoTimeout)
>>>>>>>>>>> errorSelected: DBXQueryTimeoutTest>>#testNoTimeout
>>>>>>>>>>>  lastUpdate: 3431753837
>>>>>>>>>>> result: 5 run, 4 passes, 0 expected failures, 0 failures, 1
>>>>>>>>>>> errors, 0 unexpecte...etc...
>>>>>>>>>>>  previousRun: nil
>>>>>>>>>>>
>>>>>>>>>>> PluggableListMorphPlus(PluggableListMorph)>>changeModelSelection:
>>>>>>>>>>>  Receiver: a PluggableListMorphPlus(3968)
>>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>>>  anInteger: 1
>>>>>>>>>>> Receiver's instance variables:
>>>>>>>>>>>  bounds: 1481 at 397 corner: 1792 at 583
>>>>>>>>>>> owner: a PluggableStandardWindow(1639)
>>>>>>>>>>>  submorphs: an Array(a TransformMorph(3663))
>>>>>>>>>>> fullBounds: 1481 at 397 corner: 1792 at 583
>>>>>>>>>>>  color: Color white
>>>>>>>>>>> extension: a MorphExtension (3283) [locked]  [other:
>>>>>>>>>>>  (layoutFrame -> a LayoutF...etc...
>>>>>>>>>>>  borderWidth: 1
>>>>>>>>>>> borderColor: (Color r: 0.667 g: 0.667 b: 0.667)
>>>>>>>>>>>  model: a TestRunner
>>>>>>>>>>> slotName: nil
>>>>>>>>>>>  open: false
>>>>>>>>>>> scrollBar: a ScrollBar(2643)
>>>>>>>>>>>  scroller: a TransformMorph(3663)
>>>>>>>>>>> retractableScrollBar: false
>>>>>>>>>>>  scrollBarOnLeft: false
>>>>>>>>>>> getMenuSelector: #errorMenu:
>>>>>>>>>>>  getMenuTitleSelector: nil
>>>>>>>>>>> hasFocus: false
>>>>>>>>>>>  hScrollBar: a ScrollBar(2842)
>>>>>>>>>>> list: #('DBXQueryTimeoutTest>>#testNoTimeout')
>>>>>>>>>>>  getListSelector: #errorList
>>>>>>>>>>> getListSizeSelector: nil
>>>>>>>>>>>  getListElementSelector: nil
>>>>>>>>>>> getIndexSelector: #errorSelected
>>>>>>>>>>>  setIndexSelector: #errorSelected:
>>>>>>>>>>> keystrokeActionSelector: nil
>>>>>>>>>>>  autoDeselect: true
>>>>>>>>>>> lastKeystrokeTime: 0
>>>>>>>>>>>  lastKeystrokes: ''
>>>>>>>>>>> doubleClickSelector: nil
>>>>>>>>>>>  handlesBasicKeys: nil
>>>>>>>>>>> potentialDropRow: nil
>>>>>>>>>>>  listMorph: a LazyListMorph(884)
>>>>>>>>>>> hScrollRangeCache: nil
>>>>>>>>>>>  dragItemSelector: nil
>>>>>>>>>>> dropItemSelector: nil
>>>>>>>>>>>  wantsDropSelector: nil
>>>>>>>>>>>
>>>>>>>>>>> PluggableListMorphPlus(PluggableListMorph)>>mouseUp:
>>>>>>>>>>>  Receiver: a PluggableListMorphPlus(3968)
>>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>>>  event: [1546 at 408 mouseUp 57402925 nil]
>>>>>>>>>>> row: 1
>>>>>>>>>>>  mdr: 1
>>>>>>>>>>> Receiver's instance variables:
>>>>>>>>>>>  bounds: 1481 at 397 corner: 1792 at 583
>>>>>>>>>>> owner: a PluggableStandardWindow(1639)
>>>>>>>>>>>  submorphs: an Array(a TransformMorph(3663))
>>>>>>>>>>> fullBounds: 1481 at 397 corner: 1792 at 583
>>>>>>>>>>>  color: Color white
>>>>>>>>>>> extension: a MorphExtension (3283) [locked]  [other:
>>>>>>>>>>>  (layoutFrame -> a LayoutF...etc...
>>>>>>>>>>>  borderWidth: 1
>>>>>>>>>>> borderColor: (Color r: 0.667 g: 0.667 b: 0.667)
>>>>>>>>>>>  model: a TestRunner
>>>>>>>>>>> slotName: nil
>>>>>>>>>>>  open: false
>>>>>>>>>>> scrollBar: a ScrollBar(2643)
>>>>>>>>>>>  scroller: a TransformMorph(3663)
>>>>>>>>>>> retractableScrollBar: false
>>>>>>>>>>>  scrollBarOnLeft: false
>>>>>>>>>>> getMenuSelector: #errorMenu:
>>>>>>>>>>>  getMenuTitleSelector: nil
>>>>>>>>>>> hasFocus: false
>>>>>>>>>>>  hScrollBar: a ScrollBar(2842)
>>>>>>>>>>> list: #('DBXQueryTimeoutTest>>#testNoTimeout')
>>>>>>>>>>>  getListSelector: #errorList
>>>>>>>>>>> getListSizeSelector: nil
>>>>>>>>>>>  getListElementSelector: nil
>>>>>>>>>>> getIndexSelector: #errorSelected
>>>>>>>>>>>  setIndexSelector: #errorSelected:
>>>>>>>>>>> keystrokeActionSelector: nil
>>>>>>>>>>>  autoDeselect: true
>>>>>>>>>>> lastKeystrokeTime: 0
>>>>>>>>>>>  lastKeystrokes: ''
>>>>>>>>>>> doubleClickSelector: nil
>>>>>>>>>>>  handlesBasicKeys: nil
>>>>>>>>>>> potentialDropRow: nil
>>>>>>>>>>>  listMorph: a LazyListMorph(884)
>>>>>>>>>>> hScrollRangeCache: nil
>>>>>>>>>>>  dragItemSelector: nil
>>>>>>>>>>> dropItemSelector: nil
>>>>>>>>>>>  wantsDropSelector: nil
>>>>>>>>>>>
>>>>>>>>>>> PluggableListMorphPlus(Morph)>>handleMouseUp:
>>>>>>>>>>>  Receiver: a PluggableListMorphPlus(3968)
>>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>>>  anEvent: [1546 at 408 mouseUp 57402925 nil]
>>>>>>>>>>> Receiver's instance variables:
>>>>>>>>>>>  bounds: 1481 at 397 corner: 1792 at 583
>>>>>>>>>>> owner: a PluggableStandardWindow(1639)
>>>>>>>>>>>  submorphs: an Array(a TransformMorph(3663))
>>>>>>>>>>> fullBounds: 1481 at 397 corner: 1792 at 583
>>>>>>>>>>>  color: Color white
>>>>>>>>>>> extension: a MorphExtension (3283) [locked]  [other:
>>>>>>>>>>>  (layoutFrame -> a LayoutF...etc...
>>>>>>>>>>>  borderWidth: 1
>>>>>>>>>>> borderColor: (Color r: 0.667 g: 0.667 b: 0.667)
>>>>>>>>>>>  model: a TestRunner
>>>>>>>>>>> slotName: nil
>>>>>>>>>>>  open: false
>>>>>>>>>>> scrollBar: a ScrollBar(2643)
>>>>>>>>>>>  scroller: a TransformMorph(3663)
>>>>>>>>>>> retractableScrollBar: false
>>>>>>>>>>>  scrollBarOnLeft: false
>>>>>>>>>>> getMenuSelector: #errorMenu:
>>>>>>>>>>>  getMenuTitleSelector: nil
>>>>>>>>>>> hasFocus: false
>>>>>>>>>>>  hScrollBar: a ScrollBar(2842)
>>>>>>>>>>> list: #('DBXQueryTimeoutTest>>#testNoTimeout')
>>>>>>>>>>>  getListSelector: #errorList
>>>>>>>>>>> getListSizeSelector: nil
>>>>>>>>>>>  getListElementSelector: nil
>>>>>>>>>>> getIndexSelector: #errorSelected
>>>>>>>>>>>  setIndexSelector: #errorSelected:
>>>>>>>>>>> keystrokeActionSelector: nil
>>>>>>>>>>>  autoDeselect: true
>>>>>>>>>>> lastKeystrokeTime: 0
>>>>>>>>>>>  lastKeystrokes: ''
>>>>>>>>>>> doubleClickSelector: nil
>>>>>>>>>>>  handlesBasicKeys: nil
>>>>>>>>>>> potentialDropRow: nil
>>>>>>>>>>>  listMorph: a LazyListMorph(884)
>>>>>>>>>>> hScrollRangeCache: nil
>>>>>>>>>>>  dragItemSelector: nil
>>>>>>>>>>> dropItemSelector: nil
>>>>>>>>>>>  wantsDropSelector: nil
>>>>>>>>>>>
>>>>>>>>>>> MouseButtonEvent>>sentTo:
>>>>>>>>>>> Receiver: [1546 at 408 mouseUp 57402925 nil]
>>>>>>>>>>>  Arguments and temporary variables:
>>>>>>>>>>> anObject: a PluggableListMorphPlus(3968)
>>>>>>>>>>>  Receiver's instance variables:
>>>>>>>>>>> timeStamp: 57402925
>>>>>>>>>>>  source: a HandMorph(3216)
>>>>>>>>>>> windowIndex: nil
>>>>>>>>>>>  type: #mouseUp
>>>>>>>>>>> buttons: 0
>>>>>>>>>>>  position: 1546 at 408
>>>>>>>>>>> handler: nil
>>>>>>>>>>>  wasHandled: true
>>>>>>>>>>> whichButton: 4
>>>>>>>>>>>
>>>>>>>>>>> PluggableListMorphPlus(Morph)>>handleEvent:
>>>>>>>>>>> Receiver: a PluggableListMorphPlus(3968)
>>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>>>  anEvent: [1546 at 408 mouseUp 57402925 nil]
>>>>>>>>>>> Receiver's instance variables:
>>>>>>>>>>>  bounds: 1481 at 397 corner: 1792 at 583
>>>>>>>>>>> owner: a PluggableStandardWindow(1639)
>>>>>>>>>>>  submorphs: an Array(a TransformMorph(3663))
>>>>>>>>>>> fullBounds: 1481 at 397 corner: 1792 at 583
>>>>>>>>>>>  color: Color white
>>>>>>>>>>> extension: a MorphExtension (3283) [locked]  [other:
>>>>>>>>>>>  (layoutFrame -> a LayoutF...etc...
>>>>>>>>>>>  borderWidth: 1
>>>>>>>>>>> borderColor: (Color r: 0.667 g: 0.667 b: 0.667)
>>>>>>>>>>>  model: a TestRunner
>>>>>>>>>>> slotName: nil
>>>>>>>>>>>  open: false
>>>>>>>>>>> scrollBar: a ScrollBar(2643)
>>>>>>>>>>>  scroller: a TransformMorph(3663)
>>>>>>>>>>> retractableScrollBar: false
>>>>>>>>>>>  scrollBarOnLeft: false
>>>>>>>>>>> getMenuSelector: #errorMenu:
>>>>>>>>>>>  getMenuTitleSelector: nil
>>>>>>>>>>> hasFocus: false
>>>>>>>>>>>  hScrollBar: a ScrollBar(2842)
>>>>>>>>>>> list: #('DBXQueryTimeoutTest>>#testNoTimeout')
>>>>>>>>>>>  getListSelector: #errorList
>>>>>>>>>>> getListSizeSelector: nil
>>>>>>>>>>>  getListElementSelector: nil
>>>>>>>>>>> getIndexSelector: #errorSelected
>>>>>>>>>>>  setIndexSelector: #errorSelected:
>>>>>>>>>>> keystrokeActionSelector: nil
>>>>>>>>>>>  autoDeselect: true
>>>>>>>>>>> lastKeystrokeTime: 0
>>>>>>>>>>>  lastKeystrokes: ''
>>>>>>>>>>> doubleClickSelector: nil
>>>>>>>>>>>  handlesBasicKeys: nil
>>>>>>>>>>> potentialDropRow: nil
>>>>>>>>>>>  listMorph: a LazyListMorph(884)
>>>>>>>>>>> hScrollRangeCache: nil
>>>>>>>>>>>  dragItemSelector: nil
>>>>>>>>>>> dropItemSelector: nil
>>>>>>>>>>>  wantsDropSelector: nil
>>>>>>>>>>>
>>>>>>>>>>> MorphicEventDispatcher>>dispatchDefault:with:
>>>>>>>>>>>  Receiver: a MorphicEventDispatcher
>>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>>> anEvent: [1546 at 408 mouseUp 57402925 nil]
>>>>>>>>>>>  aMorph: a PluggableListMorphPlus(3968)
>>>>>>>>>>> localEvt: [1546 at 408 mouseUp 57402925 nil]
>>>>>>>>>>>  index: 2
>>>>>>>>>>> child: a TransformMorph(3663)
>>>>>>>>>>>  morphs: an Array(a TransformMorph(3663))
>>>>>>>>>>> inside: true
>>>>>>>>>>>  Receiver's instance variables:
>>>>>>>>>>> lastType: #mouseUp
>>>>>>>>>>>  lastDispatch: #dispatchDefault:with:
>>>>>>>>>>>
>>>>>>>>>>> MorphicEventDispatcher>>dispatchEvent:with:
>>>>>>>>>>>  Receiver: a MorphicEventDispatcher
>>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>>> anEvent: [1546 at 408 mouseUp 57402925 nil]
>>>>>>>>>>>  aMorph: a PluggableListMorphPlus(3968)
>>>>>>>>>>> Receiver's instance variables:
>>>>>>>>>>>  lastType: #mouseUp
>>>>>>>>>>> lastDispatch: #dispatchDefault:with:
>>>>>>>>>>>
>>>>>>>>>>> PluggableListMorphPlus(Morph)>>processEvent:using:
>>>>>>>>>>> Receiver: a PluggableListMorphPlus(3968)
>>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>>>  anEvent: [1546 at 408 mouseUp 57402925 nil]
>>>>>>>>>>> defaultDispatcher: a MorphicEventDispatcher
>>>>>>>>>>>  Receiver's instance variables:
>>>>>>>>>>> bounds: 1481 at 397 corner: 1792 at 583
>>>>>>>>>>>  owner: a PluggableStandardWindow(1639)
>>>>>>>>>>> submorphs: an Array(a TransformMorph(3663))
>>>>>>>>>>>  fullBounds: 1481 at 397 corner: 1792 at 583
>>>>>>>>>>> color: Color white
>>>>>>>>>>>  extension: a MorphExtension (3283) [locked]  [other:
>>>>>>>>>>>  (layoutFrame -> a LayoutF...etc...
>>>>>>>>>>>  borderWidth: 1
>>>>>>>>>>> borderColor: (Color r: 0.667 g: 0.667 b: 0.667)
>>>>>>>>>>>  model: a TestRunner
>>>>>>>>>>> slotName: nil
>>>>>>>>>>>  open: false
>>>>>>>>>>> scrollBar: a ScrollBar(2643)
>>>>>>>>>>>  scroller: a TransformMorph(3663)
>>>>>>>>>>> retractableScrollBar: false
>>>>>>>>>>>  scrollBarOnLeft: false
>>>>>>>>>>> getMenuSelector: #errorMenu:
>>>>>>>>>>>  getMenuTitleSelector: nil
>>>>>>>>>>> hasFocus: false
>>>>>>>>>>>  hScrollBar: a ScrollBar(2842)
>>>>>>>>>>> list: #('DBXQueryTimeoutTest>>#testNoTimeout')
>>>>>>>>>>>  getListSelector: #errorList
>>>>>>>>>>> getListSizeSelector: nil
>>>>>>>>>>>  getListElementSelector: nil
>>>>>>>>>>> getIndexSelector: #errorSelected
>>>>>>>>>>>  setIndexSelector: #errorSelected:
>>>>>>>>>>> keystrokeActionSelector: nil
>>>>>>>>>>>  autoDeselect: true
>>>>>>>>>>> lastKeystrokeTime: 0
>>>>>>>>>>>  lastKeystrokes: ''
>>>>>>>>>>> doubleClickSelector: nil
>>>>>>>>>>>  handlesBasicKeys: nil
>>>>>>>>>>> potentialDropRow: nil
>>>>>>>>>>>  listMorph: a LazyListMorph(884)
>>>>>>>>>>> hScrollRangeCache: nil
>>>>>>>>>>>  dragItemSelector: nil
>>>>>>>>>>> dropItemSelector: nil
>>>>>>>>>>>  wantsDropSelector: nil
>>>>>>>>>>>
>>>>>>>>>>> PluggableListMorphPlus(Morph)>>processEvent:
>>>>>>>>>>>  Receiver: a PluggableListMorphPlus(3968)
>>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>>>  anEvent: [1546 at 408 mouseUp 57402925 nil]
>>>>>>>>>>> Receiver's instance variables:
>>>>>>>>>>>  bounds: 1481 at 397 corner: 1792 at 583
>>>>>>>>>>> owner: a PluggableStandardWindow(1639)
>>>>>>>>>>>  submorphs: an Array(a TransformMorph(3663))
>>>>>>>>>>> fullBounds: 1481 at 397 corner: 1792 at 583
>>>>>>>>>>>  color: Color white
>>>>>>>>>>> extension: a MorphExtension (3283) [locked]  [other:
>>>>>>>>>>>  (layoutFrame -> a LayoutF...etc...
>>>>>>>>>>>  borderWidth: 1
>>>>>>>>>>> borderColor: (Color r: 0.667 g: 0.667 b: 0.667)
>>>>>>>>>>>  model: a TestRunner
>>>>>>>>>>> slotName: nil
>>>>>>>>>>>  open: false
>>>>>>>>>>> scrollBar: a ScrollBar(2643)
>>>>>>>>>>>  scroller: a TransformMorph(3663)
>>>>>>>>>>> retractableScrollBar: false
>>>>>>>>>>>  scrollBarOnLeft: false
>>>>>>>>>>> getMenuSelector: #errorMenu:
>>>>>>>>>>>  getMenuTitleSelector: nil
>>>>>>>>>>> hasFocus: false
>>>>>>>>>>>  hScrollBar: a ScrollBar(2842)
>>>>>>>>>>> list: #('DBXQueryTimeoutTest>>#testNoTimeout')
>>>>>>>>>>>  getListSelector: #errorList
>>>>>>>>>>> getListSizeSelector: nil
>>>>>>>>>>>  getListElementSelector: nil
>>>>>>>>>>> getIndexSelector: #errorSelected
>>>>>>>>>>>  setIndexSelector: #errorSelected:
>>>>>>>>>>> keystrokeActionSelector: nil
>>>>>>>>>>>  autoDeselect: true
>>>>>>>>>>> lastKeystrokeTime: 0
>>>>>>>>>>>  lastKeystrokes: ''
>>>>>>>>>>> doubleClickSelector: nil
>>>>>>>>>>>  handlesBasicKeys: nil
>>>>>>>>>>> potentialDropRow: nil
>>>>>>>>>>>  listMorph: a LazyListMorph(884)
>>>>>>>>>>> hScrollRangeCache: nil
>>>>>>>>>>>  dragItemSelector: nil
>>>>>>>>>>> dropItemSelector: nil
>>>>>>>>>>>  wantsDropSelector: nil
>>>>>>>>>>>
>>>>>>>>>>> PluggableListMorphPlus(PluggableListMorph)>>handleFocusEvent:
>>>>>>>>>>>  Receiver: a PluggableListMorphPlus(3968)
>>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>>>  anEvent: [1546 at 408 mouseUp 57402925 nil]
>>>>>>>>>>> Receiver's instance variables:
>>>>>>>>>>>  bounds: 1481 at 397 corner: 1792 at 583
>>>>>>>>>>> owner: a PluggableStandardWindow(1639)
>>>>>>>>>>>  submorphs: an Array(a TransformMorph(3663))
>>>>>>>>>>> fullBounds: 1481 at 397 corner: 1792 at 583
>>>>>>>>>>>  color: Color white
>>>>>>>>>>> extension: a MorphExtension (3283) [locked]  [other:
>>>>>>>>>>>  (layoutFrame -> a LayoutF...etc...
>>>>>>>>>>>  borderWidth: 1
>>>>>>>>>>> borderColor: (Color r: 0.667 g: 0.667 b: 0.667)
>>>>>>>>>>>  model: a TestRunner
>>>>>>>>>>> slotName: nil
>>>>>>>>>>>  open: false
>>>>>>>>>>> scrollBar: a ScrollBar(2643)
>>>>>>>>>>>  scroller: a TransformMorph(3663)
>>>>>>>>>>> retractableScrollBar: false
>>>>>>>>>>>  scrollBarOnLeft: false
>>>>>>>>>>> getMenuSelector: #errorMenu:
>>>>>>>>>>>  getMenuTitleSelector: nil
>>>>>>>>>>> hasFocus: false
>>>>>>>>>>>  hScrollBar: a ScrollBar(2842)
>>>>>>>>>>> list: #('DBXQueryTimeoutTest>>#testNoTimeout')
>>>>>>>>>>>  getListSelector: #errorList
>>>>>>>>>>> getListSizeSelector: nil
>>>>>>>>>>>  getListElementSelector: nil
>>>>>>>>>>> getIndexSelector: #errorSelected
>>>>>>>>>>>  setIndexSelector: #errorSelected:
>>>>>>>>>>> keystrokeActionSelector: nil
>>>>>>>>>>>  autoDeselect: true
>>>>>>>>>>> lastKeystrokeTime: 0
>>>>>>>>>>>  lastKeystrokes: ''
>>>>>>>>>>> doubleClickSelector: nil
>>>>>>>>>>>  handlesBasicKeys: nil
>>>>>>>>>>> potentialDropRow: nil
>>>>>>>>>>>  listMorph: a LazyListMorph(884)
>>>>>>>>>>> hScrollRangeCache: nil
>>>>>>>>>>>  dragItemSelector: nil
>>>>>>>>>>> dropItemSelector: nil
>>>>>>>>>>>  wantsDropSelector: nil
>>>>>>>>>>>
>>>>>>>>>>> [] in HandMorph>>sendFocusEvent:to:clear:
>>>>>>>>>>>  Receiver: a HandMorph(3216)
>>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>>> <<error during printing>
>>>>>>>>>>>  Receiver's instance variables:
>>>>>>>>>>> bounds: 1071 at 619 corner: 1087 at 635
>>>>>>>>>>>  owner: a PasteUpMorph(1622) [world]
>>>>>>>>>>> submorphs: #()
>>>>>>>>>>>  fullBounds: 1071 at 619 corner: 1087 at 635
>>>>>>>>>>> color: Color blue
>>>>>>>>>>>  extension: a MorphExtension (539) [eventHandler = an
>>>>>>>>>>> EventHandler]
>>>>>>>>>>> mouseFocus: nil
>>>>>>>>>>>  keyboardFocus: nil
>>>>>>>>>>> eventListeners: nil
>>>>>>>>>>>  mouseListeners: nil
>>>>>>>>>>> keyboardListeners: nil
>>>>>>>>>>>  mouseClickState: nil
>>>>>>>>>>> mouseOverHandler: a MouseOverHandler
>>>>>>>>>>>  lastMouseEvent: [1071 at 619 1071 at 619 mouseMove 57619819 nil]
>>>>>>>>>>> targetOffset: 188 at 12
>>>>>>>>>>>  damageRecorder: a DamageRecorder
>>>>>>>>>>> cacheCanvas: nil
>>>>>>>>>>>  cachedCanvasHasHoles: true
>>>>>>>>>>> temporaryCursor: nil
>>>>>>>>>>>  temporaryCursorOffset: nil
>>>>>>>>>>> hardwareCursor: nil
>>>>>>>>>>>  hasChanged: true
>>>>>>>>>>> savedPatch: nil
>>>>>>>>>>>  userInitials: ''
>>>>>>>>>>> lastEventBuffer: #(1 57619819 1071 619 0 0 0 1)
>>>>>>>>>>>  lastKeyScanCode: 36
>>>>>>>>>>> combinedChar: nil
>>>>>>>>>>>
>>>>>>>>>>> [] in PasteUpMorph>>becomeActiveDuring:
>>>>>>>>>>> Receiver: a PasteUpMorph(1622) [world]
>>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>>> <<error during printing>
>>>>>>>>>>> Receiver's instance variables:
>>>>>>>>>>> bounds: 0 at 0 corner: 1920 at 1178
>>>>>>>>>>>  owner: nil
>>>>>>>>>>> submorphs: an Array(a TaskbarMorph(3095) a SystemWindow(3955) a
>>>>>>>>>>> PluggableStanda...etc...
>>>>>>>>>>>  fullBounds: 0 at 0 corner: 1920 at 1178
>>>>>>>>>>> color: Color gray
>>>>>>>>>>>  extension: a MorphExtension (2543) [eventHandler = an
>>>>>>>>>>> EventHandler]  [other:  (...etc...
>>>>>>>>>>>  borderWidth: 0
>>>>>>>>>>> borderColor: (Color r: 0.5 g: 0.5 b: 0.5)
>>>>>>>>>>>  presenter: a Presenter (1246)
>>>>>>>>>>> model: a MorphicModel(1926)
>>>>>>>>>>>  cursor: 1
>>>>>>>>>>> padding: 3
>>>>>>>>>>>  backgroundMorph: nil
>>>>>>>>>>> isPartsBin: nil
>>>>>>>>>>>  autoLineLayout: false
>>>>>>>>>>> indicateCursor: nil
>>>>>>>>>>>  resizeToFit: nil
>>>>>>>>>>> wantsMouseOverHalos: nil
>>>>>>>>>>>  worldState: a WorldState
>>>>>>>>>>> griddingOn: nil
>>>>>>>>>>>
>>>>>>>>>>> BlockClosure>>on:do:
>>>>>>>>>>> Receiver: [closure] in PasteUpMorph>>becomeActiveDuring:
>>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>>>  exception: Error
>>>>>>>>>>> handlerAction: [closure] in PasteUpMorph>>becomeActiveDuring:
>>>>>>>>>>>  handlerActive: false
>>>>>>>>>>> Receiver's instance variables:
>>>>>>>>>>>  outerContext: PasteUpMorph>>becomeActiveDuring:
>>>>>>>>>>> startpc: 67
>>>>>>>>>>>  numArgs: 0
>>>>>>>>>>>
>>>>>>>>>>> PasteUpMorph>>becomeActiveDuring:
>>>>>>>>>>> Receiver: a PasteUpMorph(1622) [world]
>>>>>>>>>>>  Arguments and temporary variables:
>>>>>>>>>>> aBlock: [closure] in HandMorph>>sendFocusEvent:to:clear:
>>>>>>>>>>>  priorWorld: a PasteUpMorph(1622) [world]
>>>>>>>>>>> priorHand: a HandMorph(3216)
>>>>>>>>>>>  priorEvent: [1546 at 408 mouseOver red nil nil]
>>>>>>>>>>> Receiver's instance variables:
>>>>>>>>>>>  bounds: 0 at 0 corner: 1920 at 1178
>>>>>>>>>>> owner: nil
>>>>>>>>>>>  submorphs: an Array(a TaskbarMorph(3095) a SystemWindow(3955) a
>>>>>>>>>>> PluggableStanda...etc...
>>>>>>>>>>>  fullBounds: 0 at 0 corner: 1920 at 1178
>>>>>>>>>>> color: Color gray
>>>>>>>>>>>  extension: a MorphExtension (2543) [eventHandler = an
>>>>>>>>>>> EventHandler]  [other:  (...etc...
>>>>>>>>>>>  borderWidth: 0
>>>>>>>>>>> borderColor: (Color r: 0.5 g: 0.5 b: 0.5)
>>>>>>>>>>>  presenter: a Presenter (1246)
>>>>>>>>>>> model: a MorphicModel(1926)
>>>>>>>>>>>  cursor: 1
>>>>>>>>>>> padding: 3
>>>>>>>>>>>  backgroundMorph: nil
>>>>>>>>>>> isPartsBin: nil
>>>>>>>>>>>  autoLineLayout: false
>>>>>>>>>>> indicateCursor: nil
>>>>>>>>>>>  resizeToFit: nil
>>>>>>>>>>> wantsMouseOverHalos: nil
>>>>>>>>>>>  worldState: a WorldState
>>>>>>>>>>> griddingOn: nil
>>>>>>>>>>>
>>>>>>>>>>> HandMorph>>sendFocusEvent:to:clear:
>>>>>>>>>>> Receiver: a HandMorph(3216)
>>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>>>  anEvent: [1546 at 408 mouseUp 57402925 nil]
>>>>>>>>>>> focusHolder: a PluggableListMorphPlus(3968)
>>>>>>>>>>>  aBlock: [closure] in HandMorph>>sendMouseEvent:
>>>>>>>>>>> w: a PasteUpMorph(1622) [world]
>>>>>>>>>>>  result: #(nil)
>>>>>>>>>>> Receiver's instance variables:
>>>>>>>>>>>  bounds: 1071 at 619 corner: 1087 at 635
>>>>>>>>>>> owner: a PasteUpMorph(1622) [world]
>>>>>>>>>>>  submorphs: #()
>>>>>>>>>>> fullBounds: 1071 at 619 corner: 1087 at 635
>>>>>>>>>>>  color: Color blue
>>>>>>>>>>> extension: a MorphExtension (539) [eventHandler = an
>>>>>>>>>>> EventHandler]
>>>>>>>>>>>  mouseFocus: nil
>>>>>>>>>>> keyboardFocus: nil
>>>>>>>>>>>  eventListeners: nil
>>>>>>>>>>> mouseListeners: nil
>>>>>>>>>>>  keyboardListeners: nil
>>>>>>>>>>> mouseClickState: nil
>>>>>>>>>>>  mouseOverHandler: a MouseOverHandler
>>>>>>>>>>> lastMouseEvent: [1071 at 619 1071 at 619 mouseMove 57619819 nil]
>>>>>>>>>>>  targetOffset: 188 at 12
>>>>>>>>>>> damageRecorder: a DamageRecorder
>>>>>>>>>>>  cacheCanvas: nil
>>>>>>>>>>> cachedCanvasHasHoles: true
>>>>>>>>>>>  temporaryCursor: nil
>>>>>>>>>>> temporaryCursorOffset: nil
>>>>>>>>>>>  hardwareCursor: nil
>>>>>>>>>>> hasChanged: true
>>>>>>>>>>>  savedPatch: nil
>>>>>>>>>>> userInitials: ''
>>>>>>>>>>>  lastEventBuffer: #(1 57619819 1071 619 0 0 0 1)
>>>>>>>>>>> lastKeyScanCode: 36
>>>>>>>>>>>  combinedChar: nil
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> --- The full stack ---
>>>>>>>>>>> UndefinedObject(Object)>>doesNotUnderstand: #asMiliseconds
>>>>>>>>>>> [] in [] in
>>>>>>>>>>> DBXPostgresPlatform(DBXPlatform)>>processNextResultSet:querySettings:
>>>>>>>>>>>
>>>>>>>>>>> DBXPostgresPlatform(DBXPlatform)>>nextResultSet:querySettings:onReturn:
>>>>>>>>>>> [] in
>>>>>>>>>>> DBXPostgresPlatform(DBXPlatform)>>processNextResultSet:querySettings:
>>>>>>>>>>> BlockClosure>>doWhileTrue:
>>>>>>>>>>>
>>>>>>>>>>> DBXPostgresPlatform(DBXPlatform)>>processNextResultSet:querySettings:
>>>>>>>>>>>
>>>>>>>>>>> DBXPostgresPlatform(DBXPlatform)>>executeStatement:on:querySettings:
>>>>>>>>>>> DBXConnection>>execute:querySettings:
>>>>>>>>>>> DBXQueryTimeoutTest>>testNoTimeout
>>>>>>>>>>> DBXQueryTimeoutTest(TestCase)>>performTest
>>>>>>>>>>> [] in DBXQueryTimeoutTest(TestCase)>>runCase
>>>>>>>>>>> BlockClosure>>ensure:
>>>>>>>>>>> DBXQueryTimeoutTest(TestCase)>>runCase
>>>>>>>>>>> [] in DBXQueryTimeoutTest(TestCase)>>debug
>>>>>>>>>>> BlockClosure>>ensure:
>>>>>>>>>>> DBXQueryTimeoutTest(TestCase)>>debug
>>>>>>>>>>> [] in TestRunner>>debugSuite:
>>>>>>>>>>> OrderedCollection>>do:
>>>>>>>>>>> [] in TestRunner>>basicRunSuite:do:
>>>>>>>>>>> BlockClosure>>ensure:
>>>>>>>>>>> TestRunner>>basicRunSuite:do:
>>>>>>>>>>> TestRunner>>debugSuite:
>>>>>>>>>>> TestRunner>>debug:
>>>>>>>>>>> TestRunner>>errorSelected:
>>>>>>>>>>> PluggableListMorphPlus(PluggableListMorph)>>changeModelSelection:
>>>>>>>>>>> PluggableListMorphPlus(PluggableListMorph)>>mouseUp:
>>>>>>>>>>> PluggableListMorphPlus(Morph)>>handleMouseUp:
>>>>>>>>>>> MouseButtonEvent>>sentTo:
>>>>>>>>>>> PluggableListMorphPlus(Morph)>>handleEvent:
>>>>>>>>>>> MorphicEventDispatcher>>dispatchDefault:with:
>>>>>>>>>>> MorphicEventDispatcher>>dispatchEvent:with:
>>>>>>>>>>> PluggableListMorphPlus(Morph)>>processEvent:using:
>>>>>>>>>>> PluggableListMorphPlus(Morph)>>processEvent:
>>>>>>>>>>> PluggableListMorphPlus(PluggableListMorph)>>handleFocusEvent:
>>>>>>>>>>> [] in HandMorph>>sendFocusEvent:to:clear:
>>>>>>>>>>> [] in PasteUpMorph>>becomeActiveDuring:
>>>>>>>>>>> BlockClosure>>on:do:
>>>>>>>>>>> PasteUpMorph>>becomeActiveDuring:
>>>>>>>>>>> HandMorph>>sendFocusEvent:to:clear:
>>>>>>>>>>>  - - - - - - - - - - - - - - -
>>>>>>>>>>> - - - - - - - - - - - - - - - - - -
>>>>>>>>>>> HandMorph>>sendEvent:focus:clear:
>>>>>>>>>>> HandMorph>>sendMouseEvent:
>>>>>>>>>>> HandMorph>>handleEvent:
>>>>>>>>>>> HandMorph>>processEvents
>>>>>>>>>>> [] in WorldState>>doOneCycleNowFor:
>>>>>>>>>>> Array(SequenceableCollection)>>do:
>>>>>>>>>>> WorldState>>handsDo:
>>>>>>>>>>> WorldState>>doOneCycleNowFor:
>>>>>>>>>>> WorldState>>doOneCycleFor:
>>>>>>>>>>> PasteUpMorph>>doOneCycle
>>>>>>>>>>> [] in Project class>>spawnNewProcess
>>>>>>>>>>> [] in BlockClosure>>newProcess
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> On Tue, Sep 29, 2009 at 23:14, Mariano Martinez Peck <
>>>>>>>>>>> marianopeck at gmail.com> wrote:
>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> On Fri, Sep 25, 2009 at 12:07 PM, John Toohey <jt at parspro.com>wrote:
>>>>>>>>>>>>
>>>>>>>>>>>>> Had to rebuild a new image, changes file full, and Pharo still
>>>>>>>>>>>>> cannot condense a change file. So, now I have a refresh image with just
>>>>>>>>>>>>> GlorpDBX installed. Ran the tests and have 94 passed and one failure. The
>>>>>>>>>>>>> failed test is DBXQueryNoTimeout and the failing method is #testNoTimeOut.
>>>>>>>>>>>>> The DBXQuerySetting object's timeout property is Nil, and this throws a DNU
>>>>>>>>>>>>> exception.
>>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> John: I am seeing this test but is green for me here in Linux
>>>>>>>>>>>> and Windows :(
>>>>>>>>>>>> I mean, I set a nil to the timeout property but I never send a
>>>>>>>>>>>> message to that object. I just send a null trough FFI.
>>>>>>>>>>>>
>>>>>>>>>>>> Can you tell me where does the DNU occur, who DNU a message and
>>>>>>>>>>>> which message was not understood ?   It would be excellent you can send me
>>>>>>>>>>>> the stacktrace.
>>>>>>>>>>>>
>>>>>>>>>>>> Thanks a lot for the testing!
>>>>>>>>>>>>
>>>>>>>>>>>> Mariano
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>> Going to try to install Seaside now, and hopefully my own app
>>>>>>>>>>>>> then.
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> On Fri, Sep 25, 2009 at 09:38, Mariano Martinez Peck <
>>>>>>>>>>>>> marianopeck at gmail.com> wrote:
>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> On Fri, Sep 25, 2009 at 12:21 PM, Mariano Martinez Peck <
>>>>>>>>>>>>>> marianopeck at gmail.com> wrote:
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> On Fri, Sep 25, 2009 at 12:04 PM, John Toohey <
>>>>>>>>>>>>>>> jt at parspro.com> wrote:
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> I now have a new image with Seaside 3 installed, however
>>>>>>>>>>>>>>>> when I run the follow :-
>>>>>>>>>>>>>>>> Installer ss project: 'SqueakDBX'; install:
>>>>>>>>>>>>>>>> 'SqueakDBXPharoLoader'.
>>>>>>>>>>>>>>>> SqueakDBXPharoLoader loadGlorpDBX
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> This package depends on the following classes:
>>>>>>>>>>>>>>>>   PGConnection
>>>>>>>>>>>>>>>> You must resolve these dependencies before you will be able
>>>>>>>>>>>>>>>> to load these definitions:
>>>>>>>>>>>>>>>>   PGConnection classSide>>buildDefaultFieldConverters
>>>>>>>>>>>>>>>>   PGConnection classSide>>buildStateTransitionTable
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Do I need to install the Postgres driver before I do this? I
>>>>>>>>>>>>>>>> thought it was part of the GlorpDBX install.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Yeah, I know :(
>>>>>>>>>>>>>>> It is difficult to explain but there is some places of Glorp
>>>>>>>>>>>>>>> which still reference to PGConnection. However, it is not used. Don't worry.
>>>>>>>>>>>>>>> Do a "proceed" and everything will be ok.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Ok. I found the problem. It's time to restrucutre some
>>>>>>>>>>>>>> packages about Glorp.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> I will then try to see how to fix this.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> what happened to SqueakDBX tests and the amount of
>>>>>>>>>>>>>>> connections? did it work my commit ?
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Here is a summary of the things we did to GLorp and how to
>>>>>>>>>>>>>>> run GlorpDBX tests:
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> http://squeakdbx.smallworks.com.ar/GLORP integration
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Ok, it was a secret that webpage. It is our own website with
>>>>>>>>>>>>>>> seaside and pier to replace the swiki :)   We will then do the public ANN
>>>>>>>>>>>>>>> hahaha.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> On Thu, Sep 24, 2009 at 21:16, Mariano Martinez Peck <
>>>>>>>>>>>>>>>> marianopeck at gmail.com> wrote:
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> On Thu, Sep 24, 2009 at 10:12 PM, John Toohey <
>>>>>>>>>>>>>>>>> jt at parspro.com> wrote:
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> I am running the OpenDBX-Core tests both from the
>>>>>>>>>>>>>>>>>> TestRunner and the OBPackageBrowser. The tests run successfully until my DB
>>>>>>>>>>>>>>>>>> runs out of connections. Latest Pharo, and latest GlorpDBX installed.
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> John: I have just noticed that a lot of SqueakDBX tests
>>>>>>>>>>>>>>>>> don't release the DB connections, as you guessed. I have just commit. can
>>>>>>>>>>>>>>>>> you please test it and let me know ? of course, you must first reboot or
>>>>>>>>>>>>>>>>> kill all the active connections ;)
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> "Name: OpenDBX-Core-Mariano.230
>>>>>>>>>>>>>>>>> Author: Mariano
>>>>>>>>>>>>>>>>> Time: 24 September 2009, 10:15:03 pm
>>>>>>>>>>>>>>>>> UUID: 19ce8340-3070-4495-a21d-cbe2b63aca0e
>>>>>>>>>>>>>>>>> Ancestors: OpenDBX-Core-HMC.229
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> There were a lot of SqueakDBX tests that don't release the
>>>>>>>>>>>>>>>>> connection after testing. So, this can result in a "Too many connections
>>>>>>>>>>>>>>>>> error". Now, all tests release connections."
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> On Thu, Sep 24, 2009 at 20:52, Mariano Martinez Peck <
>>>>>>>>>>>>>>>>>> marianopeck at gmail.com> wrote:
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> On Thu, Sep 24, 2009 at 3:13 PM, John Toohey <
>>>>>>>>>>>>>>>>>>> jt at parspro.com> wrote:
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> Okay, I've installed SqueakGlorp into my existing image,
>>>>>>>>>>>>>>>>>>>> and added the symlink to the VM for openDBX. I can get up to 44 tests to
>>>>>>>>>>>>>>>>>>>> pass, but it seems that the tests are not releasing their DB connections, so
>>>>>>>>>>>>>>>>>>>> after a while the rest fail with a "Too many connections error"
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> These tests you are talking about are SqueakDBX tests or
>>>>>>>>>>>>>>>>>>> Glorp tests when using SqueakDBX as the driver ?
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> Is this how it should be for those tests? I am just
>>>>>>>>>>>>>>>>>>>> selecting the test package and selecting "run tests".
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> I need to know which tests are you running, if
>>>>>>>>>>>>>>>>>>> OpenDBX-Core-Tests or GlorpTest. Anyway, tests should release connections.
>>>>>>>>>>>>>>>>>>> If this is not done, so we have a bug in our tests.
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> On Thu, Sep 24, 2009 at 12:24, Mariano Martinez Peck <
>>>>>>>>>>>>>>>>>>>> marianopeck at gmail.com> wrote:
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>> On Thu, Sep 24, 2009 at 3:06 PM, John Toohey <
>>>>>>>>>>>>>>>>>>>>> jt at parspro.com> wrote:
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>> - I've managed to build it on a VMWare VM running
>>>>>>>>>>>>>>>>>>>>>> Ubunto, and using the --disable-utils switch, I've built it on OSX also.
>>>>>>>>>>>>>>>>>>>>>> However on both systems when I run the test suite I see this :-
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>> Excellent news!!! I tell you: there is an utility
>>>>>>>>>>>>>>>>>>>>> called odbx-sql that let you send queries trough OpenDBX. However, that
>>>>>>>>>>>>>>>>>>>>> utility requires external libraries which seem to have problems, at least in
>>>>>>>>>>>>>>>>>>>>> Windows. So, when we compile in Windows, we must disable that utility. But
>>>>>>>>>>>>>>>>>>>>> remember this is an utility, not OpenDBX core or feature. It is not
>>>>>>>>>>>>>>>>>>>>> important. I didn't know it has problems also with MacOS, so I will update
>>>>>>>>>>>>>>>>>>>>> the webpage. Thanks for the testing!!!!
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>> `--> ./odbxtest -b pgsql -h localhost -p 5432 -d
>>>>>>>>>>>>>>>>>>>>>> juliet -u postgres -w postgres
>>>>>>>>>>>>>>>>>>>>>>     ODBX_CAP_BASIC: 1
>>>>>>>>>>>>>>>>>>>>>>     ODBX_CAP_LO: 0
>>>>>>>>>>>>>>>>>>>>>>     ODBX_OPT_API_VERSION: 10200
>>>>>>>>>>>>>>>>>>>>>>     ODBX_OPT_THREAD_SAFE: 1
>>>>>>>>>>>>>>>>>>>>>>     ODBX_OPT_TLS: 1
>>>>>>>>>>>>>>>>>>>>>>     ODBX_OPT_CONNECT_TIMEOUT: 1 (using)
>>>>>>>>>>>>>>>>>>>>>>     ODBX_OPT_MULTI_STATEMENTS: 1 (using)
>>>>>>>>>>>>>>>>>>>>>>     ODBX_OPT_PAGED_RESULTS: 0
>>>>>>>>>>>>>>>>>>>>>>     ODBX_OPT_COMPRESS: 0
>>>>>>>>>>>>>>>>>>>>>>     ODBX_CAP_BASIC: 1
>>>>>>>>>>>>>>>>>>>>>>     ODBX_CAP_LO: 0
>>>>>>>>>>>>>>>>>>>>>>     ODBX_OPT_API_VERSION: 10200
>>>>>>>>>>>>>>>>>>>>>>     ODBX_OPT_THREAD_SAFE: 1
>>>>>>>>>>>>>>>>>>>>>>     ODBX_OPT_TLS: 1
>>>>>>>>>>>>>>>>>>>>>>     ODBX_OPT_CONNECT_TIMEOUT: 1 (using)
>>>>>>>>>>>>>>>>>>>>>>     ODBX_OPT_MULTI_STATEMENTS: 1 (using)
>>>>>>>>>>>>>>>>>>>>>>     ODBX_OPT_PAGED_RESULTS: 0
>>>>>>>>>>>>>>>>>>>>>>     ODBX_OPT_COMPRESS: 0
>>>>>>>>>>>>>>>>>>>>>> WARNING:  nonstandard use of \\ in a string literal
>>>>>>>>>>>>>>>>>>>>>> LINE 1: SELECT * FROM odbxtest WHERE col =
>>>>>>>>>>>>>>>>>>>>>> 'a''''\\''b'
>>>>>>>>>>>>>>>>>>>>>>                                            ^
>>>>>>>>>>>>>>>>>>>>>> HINT:  Use the escape string syntax for backslashes,
>>>>>>>>>>>>>>>>>>>>>> e.g., E'\\'.
>>>>>>>>>>>>>>>>>>>>>> Error in odbx_result(): ERROR:  relation "odbxtest"
>>>>>>>>>>>>>>>>>>>>>> does not exist
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>> Error in odbx_result(): ERROR:  relation "odbxtest"
>>>>>>>>>>>>>>>>>>>>>> does not exist
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>> Not sure if this means there is a problem with the
>>>>>>>>>>>>>>>>>>>>>> build (I downloaded to latest one) or a problem with the test suite.
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>> As you guessed this seems to be a problem with the test
>>>>>>>>>>>>>>>>>>>>> suit, but the build is seems to be perfect. I will send this part to OpenDBX
>>>>>>>>>>>>>>>>>>>>> mailing list and see if I receive some help. Thanks for the report.
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>> In order to continue and install GlorpDBX into my
>>>>>>>>>>>>>>>>>>>>>> Pharo image, do I need to build a new image, as my current one already has
>>>>>>>>>>>>>>>>>>>>>> Pharo-Glorp installed. I've never figured out how to uninstall packages in
>>>>>>>>>>>>>>>>>>>>>> Smalltalk.
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>> Yeah. Me neither :(
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>> But, what you can do is install just SqueakDBX in that
>>>>>>>>>>>>>>>>>>>>> image and run the SqueakDBX tests, using PostgreSQL to see if everything is
>>>>>>>>>>>>>>>>>>>>> ok. You should have all green tests. If you get this, I would really
>>>>>>>>>>>>>>>>>>>>> appreciate if you can make a binary for MacOS :)
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>> Then, you can take a new image and install GlorpDBX as
>>>>>>>>>>>>>>>>>>>>> explained in the wiki.  Most of the tests should be green. I say "most"
>>>>>>>>>>>>>>>>>>>>> because there are some that fails because of what I told you that we don't
>>>>>>>>>>>>>>>>>>>>> support large database fields.
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>> Best,
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>> Mariano
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>> On Thu, Sep 24, 2009 at 11:15, Mariano Martinez Peck
>>>>>>>>>>>>>>>>>>>>>> <marianopeck at gmail.com> wrote:
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>> On Thu, Sep 24, 2009 at 1:59 PM, John Toohey <
>>>>>>>>>>>>>>>>>>>>>>> jt at parspro.com> wrote:
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>> I'm currently trying to build openDBX on OSX. I've
>>>>>>>>>>>>>>>>>>>>>>>> finally found the postgres client libs and include files, and I've run
>>>>>>>>>>>>>>>>>>>>>>>> ./configure -with-backends="pgsql", but when I run make I get this error :-
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>> Excellent you are giving SqueakDBX at least a try.
>>>>>>>>>>>>>>>>>>>>>>> The real thing is this: The squeakDBX team is composed by 4 people. Only one
>>>>>>>>>>>>>>>>>>>>>>> has a Mac and he is very busy with his work. I have ALL databases working on
>>>>>>>>>>>>>>>>>>>>>>> Linux and Windows. And I have also prepared binaries for that because I can
>>>>>>>>>>>>>>>>>>>>>>> (dlls, .deb and .rpm). But I cannot do it with Mac because I don't have a
>>>>>>>>>>>>>>>>>>>>>>> mac and I don't know how binaries work on Mac. If you make it work, I would
>>>>>>>>>>>>>>>>>>>>>>> really love you help me generating the binaries so that I can update them to
>>>>>>>>>>>>>>>>>>>>>>> OpenDBX website.
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>> Which OpenDBX version are you trying to compile? You
>>>>>>>>>>>>>>>>>>>>>>> should try 1.4.3.
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>> Can you try configuring this way please ?
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>> ./configure --disable-utils --with-backends="pgsql"
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>> If it works, I then explain you why that :)
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>> Making all in po
>>>>>>>>>>>>>>>>>>>>>>>> g++ -DHAVE_CONFIG_H -I. -I.. -I../lib
>>>>>>>>>>>>>>>>>>>>>>>> -DLOCALEDIR=\"/usr/local/share/locale\"
>>>>>>>>>>>>>>>>>>>>>>>> -DKEYWORDFILE=\"/usr/local/share/opendbx/keywords\"
>>>>>>>>>>>>>>>>>>>>>>>> -I/opt/local/include/postgresql83  -g -O2 -MT odbx_sql-argmap.o -MD -MP -MF
>>>>>>>>>>>>>>>>>>>>>>>> .deps/odbx_sql-argmap.Tpo -c -o odbx_sql-argmap.o `test -f 'argmap.cpp' ||
>>>>>>>>>>>>>>>>>>>>>>>> echo './'`argmap.cpp
>>>>>>>>>>>>>>>>>>>>>>>> mv -f .deps/odbx_sql-argmap.Tpo
>>>>>>>>>>>>>>>>>>>>>>>> .deps/odbx_sql-argmap.Po
>>>>>>>>>>>>>>>>>>>>>>>> g++ -DHAVE_CONFIG_H -I. -I.. -I../lib
>>>>>>>>>>>>>>>>>>>>>>>> -DLOCALEDIR=\"/usr/local/share/locale\"
>>>>>>>>>>>>>>>>>>>>>>>> -DKEYWORDFILE=\"/usr/local/share/opendbx/keywords\"
>>>>>>>>>>>>>>>>>>>>>>>> -I/opt/local/include/postgresql83  -g -O2 -MT odbx_sql-commands.o -MD -MP
>>>>>>>>>>>>>>>>>>>>>>>> -MF .deps/odbx_sql-commands.Tpo -c -o odbx_sql-commands.o `test -f
>>>>>>>>>>>>>>>>>>>>>>>> 'commands.cpp' || echo './'`commands.cpp
>>>>>>>>>>>>>>>>>>>>>>>> mv -f .deps/odbx_sql-commands.Tpo
>>>>>>>>>>>>>>>>>>>>>>>> .deps/odbx_sql-commands.Po
>>>>>>>>>>>>>>>>>>>>>>>> g++ -DHAVE_CONFIG_H -I. -I.. -I../lib
>>>>>>>>>>>>>>>>>>>>>>>> -DLOCALEDIR=\"/usr/local/share/locale\"
>>>>>>>>>>>>>>>>>>>>>>>> -DKEYWORDFILE=\"/usr/local/share/opendbx/keywords\"
>>>>>>>>>>>>>>>>>>>>>>>> -I/opt/local/include/postgresql83  -g -O2 -MT odbx_sql-completion.o -MD -MP
>>>>>>>>>>>>>>>>>>>>>>>> -MF .deps/odbx_sql-completion.Tpo -c -o odbx_sql-completion.o `test -f
>>>>>>>>>>>>>>>>>>>>>>>> 'completion.cpp' || echo './'`completion.cpp
>>>>>>>>>>>>>>>>>>>>>>>> mv -f .deps/odbx_sql-completion.Tpo
>>>>>>>>>>>>>>>>>>>>>>>> .deps/odbx_sql-completion.Po
>>>>>>>>>>>>>>>>>>>>>>>> g++ -DHAVE_CONFIG_H -I. -I.. -I../lib
>>>>>>>>>>>>>>>>>>>>>>>> -DLOCALEDIR=\"/usr/local/share/locale\"
>>>>>>>>>>>>>>>>>>>>>>>> -DKEYWORDFILE=\"/usr/local/share/opendbx/keywords\"
>>>>>>>>>>>>>>>>>>>>>>>> -I/opt/local/include/postgresql83  -g -O2 -MT odbx_sql-odbx-sql.o -MD -MP
>>>>>>>>>>>>>>>>>>>>>>>> -MF .deps/odbx_sql-odbx-sql.Tpo -c -o odbx_sql-odbx-sql.o `test -f
>>>>>>>>>>>>>>>>>>>>>>>> 'odbx-sql.cpp' || echo './'`odbx-sql.cpp
>>>>>>>>>>>>>>>>>>>>>>>> odbx-sql.cpp: In function 'int main(int, char**)':
>>>>>>>>>>>>>>>>>>>>>>>> odbx-sql.cpp:228: error: invalid conversion from
>>>>>>>>>>>>>>>>>>>>>>>> 'char* (*)(const char*, int)' to 'int (*)(const char*, int)'
>>>>>>>>>>>>>>>>>>>>>>>> make[3]: *** [odbx_sql-odbx-sql.o] Error 1
>>>>>>>>>>>>>>>>>>>>>>>> make[2]: *** [all-recursive] Error 1
>>>>>>>>>>>>>>>>>>>>>>>> make[1]: *** [all-recursive] Error 1
>>>>>>>>>>>>>>>>>>>>>>>> make: *** [all] Error 2
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>> Do you know of any pre-built binaries that will work
>>>>>>>>>>>>>>>>>>>>>>>> on OSX?
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>> I don't know, but I would love to have them!!!
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>> On Wed, Sep 23, 2009 at 23:09, Mariano Martinez Peck
>>>>>>>>>>>>>>>>>>>>>>>> <marianopeck at gmail.com> wrote:
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>> On Wed, Sep 23, 2009 at 11:27 PM, John Toohey <
>>>>>>>>>>>>>>>>>>>>>>>>> jt at parspro.com> wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>> Hey,
>>>>>>>>>>>>>>>>>>>>>>>>>> Thanks for looking into this for me. I'm just
>>>>>>>>>>>>>>>>>>>>>>>>>> using Pharo as my app is using the beta of Seaside 3.0. I'm going to do as
>>>>>>>>>>>>>>>>>>>>>>>>>> you suggested and put some debug statements in PGConnection, and see where
>>>>>>>>>>>>>>>>>>>>>>>>>> that leads.
>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>> Ok, let us know what the problem was if you find it
>>>>>>>>>>>>>>>>>>>>>>>>> :)
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>> Is it a lot of changes from me to switch to DBX on
>>>>>>>>>>>>>>>>>>>>>>>>>> Pharo?
>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>> No. Your application shouldn't have any changes.
>>>>>>>>>>>>>>>>>>>>>>>>> You application will use just Glorp. But in this case Glorp won't use the
>>>>>>>>>>>>>>>>>>>>>>>>> native PostgreSQL driver, but SqueakDBX with PostgreSQL.
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>> I assume there are no changes in my Glorp code,
>>>>>>>>>>>>>>>>>>>>>>>>>> but what else do I need to do.
>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>> The only thing you must do is:
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>> - Install the PostgreSQL client library (if you
>>>>>>>>>>>>>>>>>>>>>>>>> don't have it already installed).
>>>>>>>>>>>>>>>>>>>>>>>>> - Compile or Install (if you are in Linux you can
>>>>>>>>>>>>>>>>>>>>>>>>> use the .rpm or .deb) OpenDBX with PostgreSQL,
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>> You can read how to do it here:
>>>>>>>>>>>>>>>>>>>>>>>>> http://wiki.squeak.org/squeak/6129
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>> You must do it only once. Once this is done,
>>>>>>>>>>>>>>>>>>>>>>>>> everything is easy and you can take advantage of all the SqueakDBX features
>>>>>>>>>>>>>>>>>>>>>>>>> (http://wiki.squeak.org/squeak/6106). OpenDBX
>>>>>>>>>>>>>>>>>>>>>>>>> works perfect with PostgreSQL in Linux, Mac and Windows. We have also have
>>>>>>>>>>>>>>>>>>>>>>>>> GlorpDBX working with SqueakDBX and PostgreSQL and it is very easy to
>>>>>>>>>>>>>>>>>>>>>>>>> install:
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>> http://wiki.squeak.org/squeak/6130    (where it
>>>>>>>>>>>>>>>>>>>>>>>>> says GlorpDBX).
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>> The only limitation we have right now is that we
>>>>>>>>>>>>>>>>>>>>>>>>> don't support large objects (blob, clob, etc) yet.
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>> If you try it and have any problem, please, let us
>>>>>>>>>>>>>>>>>>>>>>>>> know!!!
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>> I develop on OSX and deploy to Linux for
>>>>>>>>>>>>>>>>>>>>>>>>>> production.
>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>> No problem.
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>> Best,
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>> Mariano
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>> On Wed, Sep 23, 2009 at 21:03, Mariano Martinez
>>>>>>>>>>>>>>>>>>>>>>>>>> Peck <marianopeck at gmail.com> wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>> I was thinking if you have the problem in Squeak
>>>>>>>>>>>>>>>>>>>>>>>>>>> also or just Pharo ?
>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>> On Wed, Sep 23, 2009 at 8:12 PM, Mariano Martinez
>>>>>>>>>>>>>>>>>>>>>>>>>>> Peck <marianopeck at gmail.com> wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>> On Wed, Sep 23, 2009 at 8:25 PM, John Toohey <
>>>>>>>>>>>>>>>>>>>>>>>>>>>> jt at parspro.com> wrote:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Hi,
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>> Hi John! This list is SqueakDBX related, so
>>>>>>>>>>>>>>>>>>>>>>>>>>>> perhaps I am not the best one to help you. I just make Glorp and PostgreSQL
>>>>>>>>>>>>>>>>>>>>>>>>>>>> native driver to work on Pharo. Actually, the only thing I did is to have
>>>>>>>>>>>>>>>>>>>>>>>>>>>> all green tests. No more than that. I don't have a Glorp + native postgresql
>>>>>>>>>>>>>>>>>>>>>>>>>>>> driver application. Anyway, I will try to help you ;)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> My app frequently losses the connection the
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Postgres, and throws a "Connection not Valid" exception. Unfortunately on
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> the latest Pharo images, there is a bug that causes this to write the stack
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> trace to disk, and then the image locks up.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>> you meat there is a Pharo bug that when there is
>>>>>>>>>>>>>>>>>>>>>>>>>>>> a walkback and the stacktrace is written to disk, it freezes the image ?  is
>>>>>>>>>>>>>>>>>>>>>>>>>>>> there a bug report of that ? Could you reproduce that ?
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>  I think the socket on the PGConnection class
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> is being closed or times out, and I need to know is there someway that I can
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> debug this or if its a know issue.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>> Yes, that's probably the case. I can see in code
>>>>>>>>>>>>>>>>>>>>>>>>>>>> that the error 'Connection not valid' when the connection is not connected
>>>>>>>>>>>>>>>>>>>>>>>>>>>> or if it is nil. If you see your stacktrace, you can see that the socket
>>>>>>>>>>>>>>>>>>>>>>>>>>>> variable is nil. That's why the error. Now, the question is why the socket
>>>>>>>>>>>>>>>>>>>>>>>>>>>> is nil ?
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>> I looked for the code to see where can be the
>>>>>>>>>>>>>>>>>>>>>>>>>>>> socket set to nil, and I found some places:  PGConnection stTerminalError:
>>>>>>>>>>>>>>>>>>>>>>>>>>>> , stTerminated
>>>>>>>>>>>>>>>>>>>>>>>>>>>> Perhaps you can put a "self halt" in those
>>>>>>>>>>>>>>>>>>>>>>>>>>>> methods and then debug them.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>> The PGConnection seems to do a lot of "self log:
>>>>>>>>>>>>>>>>>>>>>>>>>>>> 'XXXX'". So, perhaps you can have a Transcript opened to see that.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>> Finally, why don't you give a try to GlorpDBX +
>>>>>>>>>>>>>>>>>>>>>>>>>>>> SqueakDBX ?   It works pretty well and has good performance.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>> I hope this helps. Remember I am not a native
>>>>>>>>>>>>>>>>>>>>>>>>>>>> postgresql driver guru. Perhaps you can ask also in squeak-dev or pharo
>>>>>>>>>>>>>>>>>>>>>>>>>>>> mailing lists.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>> Best,
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>> Mariano
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>  I am using the latest Pharo image, with the
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> latest Pharo-Glorp package, and the newest Postgres driver. I think this is
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> the relevant part of the stack trace :-
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> PGConnection(Object)>>error:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Receiver: a PGConnection
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>  aString: 'Connection not valid'
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Receiver's instance variables:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>  trace: 0
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> state: #Terminated
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>  events: an OrderedCollection()
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> socket: nil
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>  readBuffer: 'PblankT id ��name �$password
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> �6client...etc...
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> readIndex: 384
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>  lastReadIndex: 384
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> writeBuffer: nil
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>  processId: 28132
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> secretKey: 1795051851
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>  sql: 'SELECT t1.id, t1.name, t1.password,
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> t1.client, t1.role, t1.mobile, t1.ema...etc...
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>  functionCallOid: nil
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> functionCallArgs: nil
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>  copyStream: nil
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> result: a PGResult
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>  connectionArgs: a PGConnectionArgs
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> notificationSubscribers: nil
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>  fieldConverters: an
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> IdentityDictionary(16->[closure] in PGConnection class>>boo...etc...
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>  sqlStringConverter: [closure] in
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> PGConnection>>clientEncoding:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> receivingTextConverter: an UTF8TextConverter
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> PGConnection>>execute:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Receiver: a PGConnection
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>  sqlString: 'SELECT t1.id, t1.typename,
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> t1.description, t1.selectioncount, t1.pr...etc...
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>  Receiver's instance variables:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> trace: 0
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>  state: #Terminated
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> events: an OrderedCollection()
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>  socket: nil
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> readBuffer: 'PblankT id ��name �$password
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> �6client...etc...
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>  readIndex: 384
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> lastReadIndex: 384
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>  writeBuffer: nil
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> processId: 28132
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>  secretKey: 1795051851
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> sql: 'SELECT t1.id, t1.name, t1.password,
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> t1.client, t1.role, t1.mobile, t1.ema...etc...
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>  functionCallOid: nil
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> functionCallArgs: nil
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>  copyStream: nil
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> result: a PGResult
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>  connectionArgs: a PGConnectionArgs
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> notificationSubscribers: nil
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>  fieldConverters: an
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> IdentityDictionary(16->[closure] in PGConnection class>>boo...etc...
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>  sqlStringConverter: [closure] in
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> PGConnection>>clientEncoding:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> receivingTextConverter: an UTF8TextConverter
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> SqueakDatabaseAccessor>>basicExecuteSQLString:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Receiver: a SqueakDatabaseAccessor
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Arguments and temporary variables:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>  aString: 'SELECT t1.id, t1.typename,
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> t1.description, t1.selectioncount, t1.prio...etc...
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>  result: nil
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> rowCollection: nil
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>  Receiver's instance variables:
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> connection: a PGConnection
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>  currentLogin: a Login(a PostgreSQLPlatform,
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 'postgres', '847129', 'localhost_ju...etc...
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>  logging: true
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> reusePreparedStatements: nil
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>  deniedCommands: nil
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> mutex: a Semaphore()
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>  dependents: nil
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> isInTransaction: false
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Any help would be appreciated, as this is
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> stopping me from going to a Beta test at the moment.
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Thanks,
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> --
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> -JT
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> _______________________________________________
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> SqueakDBX mailing list
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> SqueakDBX at lists.squeakfoundation.org
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>> http://lists.squeakfoundation.org/mailman/listinfo/squeakdbx
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>> --
>>>>>>>>>>>>>>>>>>>>>>>>>> -JT
>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>> --
>>>>>>>>>>>>>>>>>>>>>>>> -JT
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>> --
>>>>>>>>>>>>>>>>>>>>>> -JT
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> --
>>>>>>>>>>>>>>>>>>>> -JT
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> _______________________________________________
>>>>>>>>>>>>>>>>>>> SqueakDBX mailing list
>>>>>>>>>>>>>>>>>>> SqueakDBX at lists.squeakfoundation.org
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> http://lists.squeakfoundation.org/mailman/listinfo/squeakdbx
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> --
>>>>>>>>>>>>>>>>>> -JT
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> _______________________________________________
>>>>>>>>>>>>>>>>> SqueakDBX mailing list
>>>>>>>>>>>>>>>>> SqueakDBX at lists.squeakfoundation.org
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> http://lists.squeakfoundation.org/mailman/listinfo/squeakdbx
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> --
>>>>>>>>>>>>>>>> -JT
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> _______________________________________________
>>>>>>>>>>>>>> SqueakDBX mailing list
>>>>>>>>>>>>>> SqueakDBX at lists.squeakfoundation.org
>>>>>>>>>>>>>> http://lists.squeakfoundation.org/mailman/listinfo/squeakdbx
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> --
>>>>>>>>>>>>> -JT
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> --
>>>>>>>>>>> -JT
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> -JT
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> -JT
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> SqueakDBX mailing list
>>>>> SqueakDBX at lists.squeakfoundation.org
>>>>> http://lists.squeakfoundation.org/mailman/listinfo/squeakdbx
>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>> -JT
>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> SqueakDBX mailing list
>>>> SqueakDBX at lists.squeakfoundation.org
>>>> http://lists.squeakfoundation.org/mailman/listinfo/squeakdbx
>>>>
>>>>
>>>
>>> _______________________________________________
>>> SqueakDBX mailing list
>>> SqueakDBX at lists.squeakfoundation.org
>>> http://lists.squeakfoundation.org/mailman/listinfo/squeakdbx
>>>
>>>
>>
>>
>> --
>> -JT
>>
>>
>>
>
>
> --
> -JT
>
>
>
> _______________________________________________
> SqueakDBX mailing list
> SqueakDBX at lists.squeakfoundation.org
> http://lists.squeakfoundation.org/mailman/listinfo/squeakdbx
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/squeakdbx/attachments/20091004/9e72b57c/attachment-0001.htm


More information about the SqueakDBX mailing list