From: Colin A. <col...@go...> - 2007-11-01 10:57:46
|
Then the correct thing to do is to remove the call (after the precursor call) to initialize_special_properties. What I don't understand is why I didn't get this error when running the tests with ge. I am afraid as to what the state of my local repository is compared with yours. Can this wait until tomorrow? On 01/11/2007, Eric Bezault <er...@go...> wrote: > Colin Adams wrote: > > It's up to you. > > 6155 has fewer bugs. > > Hmm, this is not making things easy. > > Here is what I found: > > In XM_XPATH_COMPUTED_EXPRESSION: > > ~~~~~~~~~~~~~~ > compute_special_properties is > -- Compute special properties. > require > not_yet_computed: not are_special_properties_computed > all_sub_expressions_computed: sub_expressions_have_special_properties > do > initialize_special_properties > ensure > computed: are_special_properties_computed and then special_properties > /= Void > end > > ~~~~~~~~~~~~~~ > > And in XM_XPATH_MAPPED_PATH_EXPRESSION (6155): > > ~~~~~~~~~~~~~~ > compute_special_properties is > -- Compute special properties. > local > l_expression: XM_XPATH_COMPUTED_EXPRESSION > do > Precursor > initialize_special_properties > > if not are_cardinalities_computed then compute_cardinality end > if not start.are_special_properties_computed then > l_expression := start.as_computed_expression > l_expression.compute_special_properties > end > if not step.are_special_properties_computed then > l_expression := step.as_computed_expression > l_expression.compute_special_properties > end > > if start.non_creating and then step.non_creating then > set_non_creating > end > end > ~~~~~~~~~~~~~~ > > So `initialize_special_properties' is called twice (in the Precursor > and on the next line), which explains the precondition violation: > ------------------------------------------------------------------------------- > Class / Object Routine Nature of exception > Effect > ------------------------------------------------------------------------------- > XM_XPATH_MAPPED_PATH_EXPRESSION > initialize_special_properties @5 > > special_properties_not_computed: > <00000000046E47B8> (From XM_XPATH_STATIC_PROPERTY) > Precondition violated. > Fail > ------------------------------------------------------------------------------- > XM_XPATH_MAPPED_PATH_EXPRESSION > compute_special_properties @4 > <00000000046E47B8> Routine failure. > Fail > ------------------------------------------------------------------------------- > XM_XPATH_MAPPED_PATH_EXPRESSION > compute_static_properties @29 > <00000000046E47B8> (From XM_XPATH_COMPUTED_EXPRESSION) > Routine failure. > Fail > ------------------------------------------------------------------------------- > XM_XPATH_MAPPED_PATH_EXPRESSION > make @7 > <00000000046E47B8> Routine failure. > Fail > ------------------------------------------------------------------------------- > > Therefore, I suggest removing the call to > `initialize_special_properties' after the call > to Precursor. > > -- > Eric Bezault > mailto:er...@go... > http://www.gobosoft.com > |