History log of /forgerock/opendj-v3/opendj-legacy/src/main/java/org/opends/server/schema/UUIDOrderingMatchingRule.java
Revision Date Author Comments Expand
f1d83efcb7972349a3b7fffa7b812fb15d538ddf 02-Dec-2015 Jean-Noël Rouvignac <jean-noel.rouvignac@forgerock.com>

OPENDJ-2480 Upgrade fails while migrating JE backend This time the problem is due to an incorrect deserialization of VLVKeyComparator class Fixed by resurrecting OrderingMatchingRule interface + making all *OrderingMatchingRule classes implement it and adding a serialVersionUID to VLVKeyComparator class.

815a836ed89f450f9949d1a40bb99ec3e7889e2e 27-Oct-2015 Jean-Noël Rouvignac <jean-noel.rouvignac@forgerock.com>

OPENDJ-2297 OpenDJ 2.x -> 3.0 upgrade fails when there are VLV indexes JE serializes comparators inside the JE environment. After upgrade from local-db to pluggable JE backend, we want to remove nearly all databases created with the local-db-backend. In order to do this, we first need to open the environment and delete databases. On opening the environment, JE tries to deserialize the comparators. This fails because the classes in opendj-legacy are not serialization-compatible with the previous classes in opendj-server-legacy. There were 2 issues that prevented serialization-compatibility: - *OrderingMatchingRule classes had to implement Serializable - *OrderingMatchingRule classes were missing the same values for serialVersionUID fields This fix was successfully tested with a VLV index with the following search filter: "(&(uid>=user.*)(photo>=*)(numSubordinates<=1)(entryUUID>=*)(modifyTimestamp>=0)(etag>=*)(internationaliSDNNumber>=*))" This tests the following ordering matches: "caseIgnoreMatch octetStringMatch integerOrderingMatch uuidOrderingMatch generalizedTimeOrderingMatch caseExactMatch" Which tests the following ordering matching rule implementations: "CaseIgnoreOrderingMatchingRule OctetStringOrderingMatchingRule IntegerOrderingMatchingRule UUIDOrderingMatchingRule GeneralizedTimeOrderingMatchingRule CaseExactOrderingMatchingRule NumericStringOrderingMatchingRule" I am only missing HistoricalCsnOrderingMatchingRule Note: When removing the local-db-backend, we will have to move the VLV comparator to the opendj-legacy module. We can remove all methods, but we will need to retain the serialVersionUID and possibly some fields (to be tested). *OrderingMatchingRule.java: Added back serialVersionUID fields. DummyByteArrayComparator.java: Implemented Serializable, so all *OrderingMatchingRule classes also do VLVKeyComparator.java: During deserialization a NPE was thrown.

a0c5d844897894f20544288aa010623829ba12c4 18-Nov-2014 Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>

OPENDJ-1637 Upgrade: server fails to start after upgrade (ClassNotFoundException) Created empty implementations for the comparators serialized in JE databases. This allows rebuilding the secondary indexes in JE databases. Added opendj-legacy maven module to this end, and more generally to ease future migrations.

/forgerock/opendj-v3/opendj-legacy/pom.xml /forgerock/opendj-v3/opendj-legacy/src/main/java/org/opends/legacy/DummyByteArrayComparator.java /forgerock/opendj-v3/opendj-legacy/src/main/java/org/opends/legacy/package-info.java /forgerock/opendj-v3/opendj-legacy/src/main/java/org/opends/server/replication/plugin/HistoricalCsnOrderingMatchingRule.java /forgerock/opendj-v3/opendj-legacy/src/main/java/org/opends/server/replication/plugin/package-info.java AuthPasswordExactEqualityMatchingRule.java BitStringEqualityMatchingRule.java BooleanEqualityMatchingRule.java CaseExactEqualityMatchingRule.java CaseExactIA5EqualityMatchingRule.java CaseExactIA5SubstringMatchingRule.java CaseExactOrderingMatchingRule.java CaseExactSubstringMatchingRule.java CaseIgnoreEqualityMatchingRule.java CaseIgnoreIA5EqualityMatchingRule.java CaseIgnoreIA5SubstringMatchingRule.java CaseIgnoreListEqualityMatchingRule.java CaseIgnoreListSubstringMatchingRule.java CaseIgnoreOrderingMatchingRule.java CaseIgnoreSubstringMatchingRule.java CertificateExactMatchingRule.java DirectoryStringFirstComponentEqualityMatchingRule.java DistinguishedNameEqualityMatchingRule.java DoubleMetaphoneApproximateMatchingRule.java GeneralizedTimeEqualityMatchingRule.java GeneralizedTimeOrderingMatchingRule.java IntegerEqualityMatchingRule.java IntegerFirstComponentEqualityMatchingRule.java IntegerOrderingMatchingRule.java KeywordEqualityMatchingRule.java NumericStringEqualityMatchingRule.java NumericStringOrderingMatchingRule.java NumericStringSubstringMatchingRule.java ObjectIdentifierEqualityMatchingRule.java ObjectIdentifierFirstComponentEqualityMatchingRule.java OctetStringEqualityMatchingRule.java OctetStringOrderingMatchingRule.java OctetStringSubstringMatchingRule.java PresentationAddressEqualityMatchingRule.java ProtocolInformationEqualityMatchingRule.java TelephoneNumberEqualityMatchingRule.java TelephoneNumberSubstringMatchingRule.java UUIDEqualityMatchingRule.java UUIDOrderingMatchingRule.java UniqueMemberEqualityMatchingRule.java UserPasswordExactEqualityMatchingRule.java WordEqualityMatchingRule.java package-info.java /forgerock/opendj-v3/pom.xml