From: Eric B. <er...@go...> - 2007-11-01 10:37:46
|
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 |