Directory Shared (Please use DIRAPI instead)
  1. Directory Shared (Please use DIRAPI instead)
  2. DIRSHARED-47

Testfailures on jdk1.5, jdk1.6 works in shared-ldap-schema-manager

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Blocker Blocker
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 0.9.18
    • Component/s: None
    • Labels:
      None
    • Environment:
      linux

      Description

      There are failing tests using jdk1.5 whereas the tests are passing fine when using jdk1.6 for the component shared-ldap-schema-manager

        Activity

        Hide
        Felix Knecht added a comment -

        Works for me. Thanks for fixing, Emmanuel.

        Felix

        Show
        Felix Knecht added a comment - Works for me. Thanks for fixing, Emmanuel. Felix
        Hide
        Emmanuel Lecharny added a comment -
        Show
        Emmanuel Lecharny added a comment - Should be fixed with http://svn.apache.org/viewvc?rev=901299&view=rev
        Hide
        Emmanuel Lecharny added a comment -

        It seems we have huge bug in the way we manage SchemaObjects : we store those which are standard Schema objects ( AT, OC, ...) in the global OidRegistry after having check that they were not already present. Well, this is what we expect to do. The other schemaObjects are not stored into the global OidRegistry (Normalizers, SyntaxChckers and Comparators).

        Due to a wrongly '!' added in a if , the registries() method does the exact opposite.

        Why does it works for java 1.6, and fail in java 5 ? It's funny : if you register first a Normalizer with an OID shared with some AT, then the global Oid Registry will contains the OID, but as the AT's OID duplication is not tested due to the wrong check, it's ok. On the other side, if you revert the registration, the duplication will be seen.

        This is what happen : in java 6, we register first the normalizer, then the AT, and Java 5, we register first the AT then the normalizer (it all depends on the order by which the associated files are read from the disk).

        Fixing and testing atm.

        Show
        Emmanuel Lecharny added a comment - It seems we have huge bug in the way we manage SchemaObjects : we store those which are standard Schema objects ( AT, OC, ...) in the global OidRegistry after having check that they were not already present. Well, this is what we expect to do. The other schemaObjects are not stored into the global OidRegistry (Normalizers, SyntaxChckers and Comparators). Due to a wrongly '!' added in a if , the registries() method does the exact opposite. Why does it works for java 1.6, and fail in java 5 ? It's funny : if you register first a Normalizer with an OID shared with some AT, then the global Oid Registry will contains the OID, but as the AT's OID duplication is not tested due to the wrong check, it's ok. On the other side, if you revert the registration, the duplication will be seen. This is what happen : in java 6, we register first the normalizer, then the AT, and Java 5, we register first the AT then the normalizer (it all depends on the order by which the associated files are read from the disk). Fixing and testing atm.
        Hide
        Felix Knecht added a comment -

        The reports of failing tests

        Show
        Felix Knecht added a comment - The reports of failing tests

          People

          • Assignee:
            Emmanuel Lecharny
            Reporter:
            Felix Knecht
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development