Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Missing data from 1.7 EXPORT to 2.1.2 IMPORT dropping UUID property from some classes #5013

Closed
jaschenk opened this issue Sep 24, 2015 · 11 comments
Assignees

Comments

@jaschenk
Copy link

Related to original issue of just recent closed issue. Where our UUID property which is inherited from our Base object of SkywardObject is not being correctly imported. I have experienced this issue against the latest clone of the orientdb gihub respository.

Please advise,
Thanks,
Jeff

@prjhub prjhub added the bug label Sep 24, 2015
@luigidellaquila
Copy link
Member

Hi Jeff,

just to understand, which branch did you clone? Was it 'develop', '2.0.x' or 'master'?

Thanks

Luigi

@jaschenk
Copy link
Author

It was 'master'. Please advise if I should pull a specific branch.
Thanks,
Jeff

@luigidellaquila
Copy link
Member

Please, try '2.1.x' (not '2.0.x' as I mentioned before), it's the candidate to be next stable.
Thanks
Luigi

@jaschenk
Copy link
Author

Will do, as soon as I am out of meetings this morning.
Thanks,
Jeff

@jaschenk
Copy link
Author

I have been successful in performing 1.7 export and a 2.1.3 Import, using the latest 2.1.x Branch in github which built orientdb-community-2.1.3-SNAPSHOT.
This fixed the UUID being missed in previous IMPORTS.

However, now when running integration tests, I see the following exception:

com.orientechnologies.orient.core.exception.OValidationException: The field 'SkywardObject.__uuid' does not match the regular expression '^[0-9A-Za-z]{8}-[0-9A-Za-z]{4}-[0-9A-Za-z]{4}-[0-9A-Za-z]{4}-[0-9A-Za-z]{12}$'. Field value is: uuid, record: CommercialOperatorOrganization#13:0{airframes:[2],title:Jeff A.. Schenk,objState:ACTIVE,isARNManager:true,isOpsManager:true,setUpFinished:true,isPrivate:true,createdBy:#19:0,personnel:[1],about:null,organizationPhoneNumber:+1-123-456-7890,organizationEmail:jeff.schenk@skyward.io,organizationOwner:null,updatedBy:#19:0,updatedByDate:Tue Aug 11 17:14:09 PDT 2015,address:#64:0,startDate:Mon Jun 01 00:00:00 PDT 2015,createdByDate:Wed Jul 01 04:42:26 PDT 2015,isPersonalOrg:true,parts:[1],__uuid:uuid} v3
    at com.orientechnologies.orient.core.record.impl.ODocument.validateField(ODocument.java:258)
    at com.orientechnologies.orient.core.record.impl.ODocument.validate(ODocument.java:2002)
    at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.save(ODatabaseDocumentTx.java:2419)
    at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.save(ODatabaseDocumentTx.java:2309)
    at com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.save(ODatabaseDocumentTx.java:120)
    at com.orientechnologies.orient.server.network.protocol.binary.OBinaryNetworkProtocolAbstract.updateRecord(OBinaryNetworkProtocolAbstract.java:390)
    at com.orientechnologies.orient.server.network.protocol.binary.ONetworkProtocolBinary.updateRecord(ONetworkProtocolBinary.java:1536)
    at com.orientechnologies.orient.server.network.protocol.binary.ONetworkProtocolBinary.executeRequest(ONetworkProtocolBinary.java:365)
    at com.orientechnologies.orient.server.network.protocol.binary.OBinaryNetworkProtocolAbstract.execute(OBinaryNetworkProtocolAbstract.java:223)
    at com.orientechnologies.common.thread.OSoftThread.run(OSoftThread.java:77)

This is from our SpringBoot SaaS which is an OrientBD client. Using the build 2.1.3 JARs as well during build and Integration Tests Run.
POM Dependencies used:

 <dependency>
            <groupId>orientdb</groupId>
            <artifactId>orientdb-core</artifactId>
            <version>${orientdb.version}</version>
            <type>jar</type>
        </dependency>
        <dependency>
            <groupId>orientdb</groupId>
            <artifactId>orientdb-client</artifactId>
            <version>${orientdb.version}</version>
            <type>jar</type>
        </dependency>
        <dependency>
            <groupId>orientdb</groupId>
            <artifactId>orientdb-enterprise</artifactId>
            <version>${orientdb.version}</version>
            <type>jar</type>
        </dependency>
        <!-- Additional Runtime Dependencies for OrientDB -->
        <dependency>
            <groupId>net.java.dev.jna</groupId>
            <artifactId>jna</artifactId>
            <version>4.2.0</version>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>com.googlecode.concurrentlinkedhashmap</groupId>
            <artifactId>concurrentlinkedhashmap-lru</artifactId>
            <version>1.4.2</version>
            <scope>runtime</scope>
        </dependency>
```The orientdb.version resolves to 2.1.3-DEV, whose artifacts were pushed to our local Nexus Maven Repo to be available for build.

It appears still something is looking for __UUID?

Please advise.

Thanks,
Jeff

@jaschenk
Copy link
Author

This provides some info from ide. Where person class has both a property uuid and __uuid. This must have occurred during import. Are there restrictions on the field name uuid?

personalsohasa__uuidproperty

personquerywithuuid

personschemawith__uuid

@jaschenk
Copy link
Author

Since we have duplicate uuid's in the form of uuid and __uuid both appear to contain same data, and each property is mandatory and not nullable, this in turn caused the exception posted above in previous post. So still issue with import, import our uuid and creating another property named __uuid containing same data.

Please advise as this is blocking our conversion path.

Many Thanks,
Jeff Schenk

@jaschenk
Copy link
Author

I could perhaps drop the extra __uuid property during our migrations and schema checking prior to our app bootstrap, I might try that to get further along.

After review additional classes, it appears some classes had uuid imported correctly others did not like CommercialOperatorOrganization. Also the Base abstract object SkywardObject only contain property __uuid and not uuid?

Posting tarball of database for review.

Please advise if you need additional information.

Thanks,
Jeff

@luigidellaquila
Copy link
Member

Hi Jeff,

I'm looking at this right now.
I still don't understand where this __uuid comes from, but if it's not in your domain you can just drop it.

I'll give you a feedback soon

Thanks

Luigi

@luigidellaquila
Copy link
Member

Hi Jeff,

still hard to reproduce, but I sent you a private email about this

Thanks

Luigi

@jaschenk
Copy link
Author

Due to a bad legacy migration plan that was left in the code base caused the issue of missing uuid and __uuid properties.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

No branches or pull requests

4 participants