Skip to content
This repository has been archived by the owner on Feb 12, 2022. It is now read-only.

DataNucleus JDOFatalUserException: No metadata has been registered for class #9

Closed
keithpeters opened this issue Sep 13, 2011 · 13 comments

Comments

@keithpeters
Copy link

I generated entities for my force.com application using the maven-force-plugin.

Then I created a simple main program to connect to my org and load a Contact entity:

    public static void main(String[] args) {
        EntityManager em = 
            Persistence
                .createEntityManagerFactory(PERSISTENCE_UNIT_NAME)
                .createEntityManager();
        try {
            System.out.println("Contact: " + em.find(Contact.class, CONTACT_ID));
        }
        finally {
            em.close();
        }
    }

When I run this I get the following exception:

    Exception in thread "main" javax.jdo.JDOFatalUserException: No metadata has been registered for class com.claimvantagecorp.model.Contact.
        at javax.jdo.spi.JDOImplHelper.getMeta(JDOImplHelper.java:493)
        at javax.jdo.spi.JDOImplHelper.newInstance(JDOImplHelper.java:227)
        at org.datanucleus.jdo.state.JDOStateManagerImpl.initialiseForHollow(JDOStateManagerImpl.java:253)
        at org.datanucleus.state.StateManagerFactory.newStateManagerForHollow(StateManagerFactory.java:56)
        at org.datanucleus.ObjectManagerImpl.findObject(ObjectManagerImpl.java:2772)
        at org.datanucleus.jpa.EntityManagerImpl.find(EntityManagerImpl.java:305)
        at com.force.sdk.jpa.ForceEntityManager.find(ForceEntityManager.java:294)
        at org.datanucleus.jpa.EntityManagerImpl.find(EntityManagerImpl.java:236)

When I breakpoint the line that registers a classes jdo metadata, JDOImplHelper.java:364, I can see that the mapped superclasses of the entities are being added but not the entities them selves.

Btw, this is the debug output:

    17:02:58 INFO  [Persistence] - Property datanucleus.rdbms.stringDefaultLength unknown - will be ignored
    17:02:58 INFO  [Persistence] - ================= Persistence Configuration ===============
    17:02:58 INFO  [Persistence] - DataNucleus Persistence Factory - Vendor: "DataNucleus"  Version: "2.2.3"
    17:02:58 INFO  [Persistence] - DataNucleus Persistence Factory initialised for datastore URL="" driver="" userName=""
    17:02:58 INFO  [Persistence] - ===========================================================
    17:02:58 INFO  [Persistence] - Property force.ConnectionName unknown - will be ignored
    17:02:58 INFO  [MetaData] - Not found any metadata mapping files for resource name META-INF/orm.xml in CLASSPATH
    17:02:59 INFO  [MetaData] - Class "com.example.model.Account" has been specified with JPA annotations so using those.
    17:02:59 INFO  [MetaData] - Class "com.example.model.Contact" has been specified with JPA annotations so using those.
    17:02:59 INFO  [MetaData] - Class "com.example.model.UserRole" has been specified with JPA annotations so using those.
    17:02:59 INFO  [MetaData] - Class "com.example.model.BusinessProcess" has been specified with JPA annotations so using those.
    17:02:59 INFO  [MetaData] - Class "com.example.model.Organization" has been specified with JPA annotations so using those.
    17:02:59 INFO  [MetaData] - Class "com.example.model.RecordType" has been specified with JPA annotations so using those.
    17:02:59 INFO  [MetaData] - Class "com.force.sdk.jpa.model.ForceOwner" has been specified with JPA annotations so using those.
    17:02:59 INFO  [MetaData] - Class "com.example.model.CallCenter" has been specified with JPA annotations so using those.
    17:02:59 INFO  [MetaData] - Class "com.example.model.Profile" has been specified with JPA annotations so using those.
    17:02:59 INFO  [MetaData] - Class "com.example.model.Dates" has been specified with JPA annotations so using those.
    17:02:59 INFO  [MetaData] - Class "com.example.model.Group" has been specified with JPA annotations so using those.
    17:02:59 INFO  [MetaData] - Class "com.example.model.UserLicense" has been specified with JPA annotations so using those.
    17:02:59 INFO  [MetaData] - Class "com.example.model.User" has been specified with JPA annotations so using those.
    17:02:59 INFO  [MetaData] - Class "com.force.sdk.jpa.model.BaseForceStandardObject" has been specified with JPA annotations so using those.
    17:02:59 INFO  [MetaData] - Class "com.force.sdk.jpa.model.BaseForceObject" has been specified with JPA annotations so using those.
    17:02:59 INFO  [MetaData] - Class "com.force.sdk.jpa.model.BaseForceCustomObject" has been specified with JPA annotations so using those.
    17:02:59 INFO  [connector] - Connection : Creating AbsenceJpaTest from environment variable: FORCE_JPATEST_URL
    17:03:13 INFO  [Persistence] - Managing Persistence of Class : com.force.sdk.jpa.model.BaseForceObject [Table : (none), InheritanceStrategy : subclass-table]
    17:03:13 INFO  [Persistence] - Managing Persistence of Class : com.example.model.CallCenter [Table : (none), InheritanceStrategy : new-table]
    17:03:13 INFO  [Persistence] - Managing Persistence of Class : com.example.model.UserLicense [Table : (none), InheritanceStrategy : new-table]
    17:03:13 INFO  [Persistence] - Managing Persistence of Class : com.example.model.Profile [Table : (none), InheritanceStrategy : new-table]
    17:03:13 INFO  [Persistence] - Managing Persistence of Class : com.example.model.UserRole [Table : (none), InheritanceStrategy : new-table]
    17:03:13 INFO  [Persistence] - Managing Persistence of Class : com.example.model.User [Table : (none), InheritanceStrategy : new-table]
    17:03:13 INFO  [Persistence] - Managing Persistence of Class : com.force.sdk.jpa.model.ForceOwner [Table : (none), InheritanceStrategy : new-table]
    17:03:13 INFO  [Persistence] - Managing Persistence of Class : com.force.sdk.jpa.model.BaseForceStandardObject [Table : (none), InheritanceStrategy : subclass-table]
    17:03:13 INFO  [Persistence] - Managing Persistence of Class : com.example.model.Account [Table : (none), InheritanceStrategy : new-table]
    17:03:13 INFO  [Persistence] - Managing Persistence of Class : com.example.model.BusinessProcess [Table : (none), InheritanceStrategy : new-table]
    17:03:13 INFO  [Persistence] - Managing Persistence of Class : com.example.model.RecordType [Table : (none), InheritanceStrategy : new-table]
    17:03:13 INFO  [Persistence] - Managing Persistence of Class : com.force.sdk.jpa.model.BaseForceCustomObject [Table : (none), InheritanceStrategy : subclass-table]
    17:03:13 INFO  [Persistence] - Managing Persistence of Class : com.example.model.Contact [Table : (none), InheritanceStrategy : new-table]
    Exception in thread "main" javax.jdo.JDOFatalUserException: No metadata has been registered for class com.example.model.Contact.

Btw, I tried posting this as a question on stackoverflow but the tag database.com hasn't been created yet and (I'm ashamed to say :(), I don't have the reputation to create one. Any help or pointers would be much appreciated.

@naaman
Copy link

naaman commented Sep 13, 2011

Can you post your persistence.xml and pom.xml? Be sure to erase any passwords if they're listed there.

@keithpeters
Copy link
Author

<persistence xmlns="http://java.sun.com/xml/ns/persistence"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"
    version="1.0">

    <persistence-unit name="AbsenceJpaTest">
        <provider>com.force.sdk.jpa.PersistenceProviderImpl</provider>
        <!-- In a single module web application, no need to specify classes. Classes 
            will be autodiscovered based on @Entity annotation -->
        <properties>
            <property name="datanucleus.storeManagerType" value="force" />
            <property name="datanucleus.autoCreateSchema" value="true" />
            <property name="datanucleus.validateTables" value="false" />
            <property name="datanucleus.validateConstraints" value="false" />
            <property name="datanucleus.Optimistic" value="false" />
            <property name="datanucleus.datastoreTransactionDelayOperations" value="true" />
            <property name="datanucleus.jpa.addClassTransformer" value="false" />
            <property name="datanucleus.cache.level2.type" value="none" />
            <property name="datanucleus.detachAllOnCommit" value="true" />
            <property name="datanucleus.copyOnAttach" value="false" />
        </properties>
    </persistence-unit>
</persistence>

@keithpeters
Copy link
Author

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>AbsenceJpaTest</groupId>
    <artifactId>com.claimvantage</artifactId>
    <version>0.0.1-SNAPSHOT</version>

    <properties>
        <java-version>1.6</java-version>
        <org.springframework-version>3.0.5.RELEASE</org.springframework-version>
        <org.aspectj-version>1.6.9</org.aspectj-version>
        <org.slf4j-version>1.6.1</org.slf4j-version>
        <force.sdk.version>22.0.5-BETA</force.sdk.version>
    </properties>

    <build>
        <plugins>
            <plugin>
                <groupId>com.force</groupId>
                <artifactId>maven-force-plugin</artifactId>
                <version>22.0.5-BETA</version>
                <configuration>
                    <connectionName>AbsenceJpaTest</connectionName>
                    <includes>
                        <include>Contact</include>
                        <include>User</include>
                    </includes>
                </configuration>
                <executions>
                    <execution>
                        <id>generate-force-entities</id>
                        <goals>
                            <goal>codegen</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
    <dependencies>
        <!-- Testing -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.8.2</version>
            <scope>test</scope>
        </dependency>

        <!-- Logging -->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>${org.slf4j-version}</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>jcl-over-slf4j</artifactId>
            <version>${org.slf4j-version}</version>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>${org.slf4j-version}</version>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.15</version>
            <exclusions>
                <exclusion>
                    <groupId>javax.mail</groupId>
                    <artifactId>mail</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>javax.jms</groupId>
                    <artifactId>jms</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>com.sun.jdmk</groupId>
                    <artifactId>jmxtools</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>com.sun.jmx</groupId>
                    <artifactId>jmxri</artifactId>
                </exclusion>
            </exclusions>
            <scope>runtime</scope>
        </dependency>

        <!-- Spring -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>${org.springframework-version}</version>
            <exclusions>
                <!-- Exclude Commons Logging in favor of SLF4j -->
                <exclusion>
                    <groupId>commons-logging</groupId>
                    <artifactId>commons-logging</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <!-- AspectJ -->
        <dependency>
            <groupId>org.aspectj</groupId>
            <artifactId>aspectjrt</artifactId>
            <version>${org.aspectj-version}</version>
        </dependency>

        <!-- Database.com -->

        <dependency>
            <groupId>com.force.sdk</groupId>
            <artifactId>force-jpa</artifactId>
            <version>${force.sdk.version}</version>
        </dependency>
        <dependency>
            <groupId>org.datanucleus</groupId>
            <artifactId>datanucleus-core</artifactId>
            <version>2.2.3</version>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.datanucleus</groupId>
            <artifactId>datanucleus-jpa</artifactId>
            <version>2.1.7</version>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-tx</artifactId>
            <version>${org.springframework-version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-orm</artifactId>
            <version>${org.springframework-version}</version>
        </dependency>

        <!-- CGLIB -->
        <dependency>
            <groupId>cglib</groupId>
            <artifactId>cglib</artifactId>
            <version>2.2</version>
            <scope>runtime</scope>
        </dependency>

        <dependency>
            <groupId>javax.persistence</groupId>
            <artifactId>persistence-api</artifactId>
            <version>1.0.2</version>
            <type>jar</type>
        </dependency>
    </dependencies>
</project>

@naaman
Copy link

naaman commented Sep 13, 2011

Keith,
It seems like the likely issue is that you're missing the datanucleus plugin in maven and your classes aren't getting enhanced during compile. Can you try adding the following plugin to pom.xml and run mvn package from the command line:

<plugin>
<groupId>org.datanucleus</groupId>
<artifactId>maven-datanucleus-plugin</artifactId>
<version>2.1.0-release</version>
<dependencies>
<dependency>
<groupId>org.datanucleus</groupId>
<artifactId>datanucleus-core</artifactId>
<version>2.2.3</version>

<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.datanucleus</groupId>
<artifactId>datanucleus-enhancer</artifactId>
<version>2.1.0-release</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.datanucleus</groupId>
<artifactId>datanucleus-rdbms</artifactId>
<version>2.1.0-release</version>
<scope>runtime</scope>
<optional>true</optional>
</dependency>

<dependency>
<groupId>org.datanucleus</groupId>
<artifactId>datanucleus-jpa</artifactId>
<version>2.1.6</version>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
</dependencies>
<configuration>
<api>JPA</api>
<verbose>true</verbose>
</configuration>
<executions>
<execution>
<phase>process-classes</phase>
<goals>
<goal>enhance</goal>
</goals>
</execution>
</executions>
</plugin>

@naaman
Copy link

naaman commented Sep 13, 2011

You'll also need the datanucleus plugin repository:

<pluginRepositories>
<pluginRepository>
<id>DataNucleus_2</id>
<url>http://www.datanucleus.org/downloads/maven2/</url>
</pluginRepository>
</pluginRepositories>

@keithpeters
Copy link
Author

That appears to of worked, thanks for that.

Fyi, I initially got a 'Command line too long' error from the enhancer however this was fixed when I added the fork=false configuration item.

Unfortunately, this has only moved me on to the next issue (do you want me to open a new issue for this?):

Caused by: java.lang.ClassCastException: org.datanucleus.store.types.sco.simple.GregorianCalendar cannot be cast to com.claimvantagecorp.model.Account
    at com.claimvantagecorp.model.Contact.jdoReplaceField(Contact.java)
    at com.force.sdk.jpa.model.BaseForceObject.jdoReplaceFields(BaseForceObject.java)
    at org.datanucleus.jdo.state.JDOStateManagerImpl.replaceFields(JDOStateManagerImpl.java:2983)
    at org.datanucleus.jdo.state.JDOStateManagerImpl.replaceFields(JDOStateManagerImpl.java:3003)
    at org.datanucleus.state.ObjectProviderImpl.replaceFields(ObjectProviderImpl.java:70)
    at com.force.sdk.jpa.ForcePersistenceHandler.fetchObject(ForcePersistenceHandler.java:136)
    at org.datanucleus.jdo.state.JDOStateManagerImpl.loadFieldsFromDatastore(JDOStateManagerImpl.java:2028)
    at org.datanucleus.jdo.state.JDOStateManagerImpl.validate(JDOStateManagerImpl.java:4528)
    at org.datanucleus.ObjectManagerImpl.findObject(ObjectManagerImpl.java:2809)
    at org.datanucleus.jpa.EntityManagerImpl.find(EntityManagerImpl.java:305)
    at com.force.sdk.jpa.ForceEntityManager.find(ForceEntityManager.java:294)

Btw, this is the generated Contact entity:

package com.claimvantagecorp.model;

import javax.persistence.*;

/**
 * Java model for the Force.com Contact object.
 *
 * For this class, the following operations are available
 * via Force.com JPA:
 *
 *     Create : true
 *     Read   : true
 *     Update : true
 *     Delete : true
 *
 * This class was auto-generated. It is considered owned
 * by the Force.com database.
 *
 * @author Keith Peters (keithpeters@claimvantage.com)
 **/
@javax.annotation.Generated(value="com.force.sdk.codegen.ForceJPAClassGenerator")
@Table(name="Contact")
@Entity(name="Contact")
@com.force.sdk.jpa.annotation.CustomObject(readOnlySchema=true)
public class Contact extends com.force.sdk.jpa.model.BaseForceStandardObject {

    public static final String KEY_PREFIX = "003";


    protected boolean isDeleted;
    protected Contact masterRecord;
    protected Account account;
    protected String lastName;
    protected String firstName;
    protected String salutation;
    protected RecordType recordType;
    protected String otherStreet;
    protected String otherCity;
    protected String otherState;
    protected String otherPostalCode;
    protected String otherCountry;
    protected String mailingStreet;
    protected String mailingCity;
    protected String mailingState;
    protected String mailingPostalCode;
    protected String mailingCountry;
    protected String phone;
    protected String fax;
    protected String mobilePhone;
    protected String homePhone;
    protected String otherPhone;
    protected String assistantPhone;
    protected Contact reportsTo;
    protected String email;
    protected String title;
    protected String department;
    protected String assistantName;
    protected String leadSource;
    protected java.util.Date birthdate;
    protected String description;
    protected User createdBy;
    protected User lastModifiedBy;
    protected java.util.Date lastActivityDate;
    protected java.util.Calendar lastCURequestDate;
    protected java.util.Calendar lastCUUpdateDate;
    protected String emailBouncedReason;
    protected java.util.Calendar emailBouncedDate;
    protected String jigsaw;
    protected String employeeNo;
    protected String ssn;
    protected double leaveFmlaFederalMilMedPendingTaken;
    protected double leaveFmlaFederalPending;
    protected WorkSite workSite;
    protected WeeklySchedule thisWeeksSchedule;
    protected java.util.Date fmlaAnniversaryDate;
    protected String leaveFmlaFederalApprovedLabel;
    protected java.util.Date hireDate;
    protected java.util.Date hireDatePrevious;
    protected java.util.Date departureDatePrevious;
    protected String leaveFmlaFederalApprovedTakenLabel;
    protected String leaveFmlaFederalMilMedApprovedLabel;
    protected String leaveFmlaFederalMilMedApprovedTakenLabel;
    protected String leaveFmlaFederalMilMedPendingLabel;
    protected String leaveFmlaFederalMilMedPendingTakenLabel;
    protected String leaveFmlaFederalMilMedRemainingLabel;
    protected String leaveFmlaFederalPendingLabel;
    protected String leaveFmlaFederalPendingTakenLabel;
    protected String leaveFmlaFederalRemainingLabel;
    protected double leaveFmlaFederalMilMedApproved;
    protected double leaveFmlaFederalApproved;
    protected double leaveFmlaFederalMilMedApprovedTaken;
    protected double leaveFmlaFederalApprovedTaken;
    protected double leaveFmlaFederalMilMedPending;
    protected double leaveFmlaFederalRemaining;
    protected double leaveFmlaFederalMilMedRemaining;
    protected double leaveFmlaFederalPendingTaken;


    public boolean getIsDeleted() {
        return this.isDeleted;
    }

    public void setIsDeleted(boolean isDeleted) {
        this.isDeleted = isDeleted;
    }

    @ManyToOne
    @Basic(fetch=FetchType.LAZY)
    @Column(name="MasterRecordId")
    public Contact getMasterRecord() {
        return this.masterRecord;
    }

    public void setMasterRecord(Contact masterRecord) {
        this.masterRecord = masterRecord;
    }

    @ManyToOne
    @Basic(fetch=FetchType.LAZY)
    @Column(name="AccountId")
    public Account getAccount() {
        return this.account;
    }

    public void setAccount(Account account) {
        this.account = account;
    }

    public String getLastName() {
        return this.lastName;
    }

    @Basic(optional=false)
    public void setLastName(String lastName) {
        this.lastName = lastName;
    }

    public String getFirstName() {
        return this.firstName;
    }

    public void setFirstName(String firstName) {
        this.firstName = firstName;
    }

    public String getSalutation() {
        return this.salutation;
    }

    public void setSalutation(String salutation) {
        this.salutation = salutation;
    }

    @ManyToOne
    @Basic(fetch=FetchType.LAZY)
    @Column(name="RecordTypeId")
    public RecordType getRecordType() {
        return this.recordType;
    }

    public void setRecordType(RecordType recordType) {
        this.recordType = recordType;
    }

    public String getOtherStreet() {
        return this.otherStreet;
    }

    public void setOtherStreet(String otherStreet) {
        this.otherStreet = otherStreet;
    }

    public String getOtherCity() {
        return this.otherCity;
    }

    public void setOtherCity(String otherCity) {
        this.otherCity = otherCity;
    }

    public String getOtherState() {
        return this.otherState;
    }

    public void setOtherState(String otherState) {
        this.otherState = otherState;
    }

    public String getOtherPostalCode() {
        return this.otherPostalCode;
    }

    public void setOtherPostalCode(String otherPostalCode) {
        this.otherPostalCode = otherPostalCode;
    }

    public String getOtherCountry() {
        return this.otherCountry;
    }

    public void setOtherCountry(String otherCountry) {
        this.otherCountry = otherCountry;
    }

    public String getMailingStreet() {
        return this.mailingStreet;
    }

    public void setMailingStreet(String mailingStreet) {
        this.mailingStreet = mailingStreet;
    }

    public String getMailingCity() {
        return this.mailingCity;
    }

    public void setMailingCity(String mailingCity) {
        this.mailingCity = mailingCity;
    }

    public String getMailingState() {
        return this.mailingState;
    }

    public void setMailingState(String mailingState) {
        this.mailingState = mailingState;
    }

    public String getMailingPostalCode() {
        return this.mailingPostalCode;
    }

    public void setMailingPostalCode(String mailingPostalCode) {
        this.mailingPostalCode = mailingPostalCode;
    }

    public String getMailingCountry() {
        return this.mailingCountry;
    }

    public void setMailingCountry(String mailingCountry) {
        this.mailingCountry = mailingCountry;
    }

    public String getPhone() {
        return this.phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    public String getFax() {
        return this.fax;
    }

    public void setFax(String fax) {
        this.fax = fax;
    }

    public String getMobilePhone() {
        return this.mobilePhone;
    }

    public void setMobilePhone(String mobilePhone) {
        this.mobilePhone = mobilePhone;
    }

    public String getHomePhone() {
        return this.homePhone;
    }

    public void setHomePhone(String homePhone) {
        this.homePhone = homePhone;
    }

    public String getOtherPhone() {
        return this.otherPhone;
    }

    public void setOtherPhone(String otherPhone) {
        this.otherPhone = otherPhone;
    }

    public String getAssistantPhone() {
        return this.assistantPhone;
    }

    public void setAssistantPhone(String assistantPhone) {
        this.assistantPhone = assistantPhone;
    }

    @ManyToOne
    @Basic(fetch=FetchType.LAZY)
    @Column(name="ReportsToId")
    public Contact getReportsTo() {
        return this.reportsTo;
    }

    public void setReportsTo(Contact reportsTo) {
        this.reportsTo = reportsTo;
    }

    public String getEmail() {
        return this.email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getTitle() {
        return this.title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getDepartment() {
        return this.department;
    }

    public void setDepartment(String department) {
        this.department = department;
    }

    public String getAssistantName() {
        return this.assistantName;
    }

    public void setAssistantName(String assistantName) {
        this.assistantName = assistantName;
    }

    public String getLeadSource() {
        return this.leadSource;
    }

    public void setLeadSource(String leadSource) {
        this.leadSource = leadSource;
    }

    public java.util.Date getBirthdate() {
        return this.birthdate;
    }

    public void setBirthdate(java.util.Date birthdate) {
        this.birthdate = birthdate;
    }

    public String getDescription() {
        return this.description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    @ManyToOne
    @Basic(fetch=FetchType.LAZY)
    @Column(name="CreatedById")
    public User getCreatedBy() {
        return this.createdBy;
    }

    public void setCreatedBy(User createdBy) {
        this.createdBy = createdBy;
    }

    @ManyToOne
    @Basic(fetch=FetchType.LAZY)
    @Column(name="LastModifiedById")
    public User getLastModifiedBy() {
        return this.lastModifiedBy;
    }

    public void setLastModifiedBy(User lastModifiedBy) {
        this.lastModifiedBy = lastModifiedBy;
    }

    public java.util.Date getLastActivityDate() {
        return this.lastActivityDate;
    }

    public void setLastActivityDate(java.util.Date lastActivityDate) {
        this.lastActivityDate = lastActivityDate;
    }

    public java.util.Calendar getLastCURequestDate() {
        return this.lastCURequestDate;
    }

    public void setLastCURequestDate(java.util.Calendar lastCURequestDate) {
        this.lastCURequestDate = lastCURequestDate;
    }

    public java.util.Calendar getLastCUUpdateDate() {
        return this.lastCUUpdateDate;
    }

    public void setLastCUUpdateDate(java.util.Calendar lastCUUpdateDate) {
        this.lastCUUpdateDate = lastCUUpdateDate;
    }

    public String getEmailBouncedReason() {
        return this.emailBouncedReason;
    }

    public void setEmailBouncedReason(String emailBouncedReason) {
        this.emailBouncedReason = emailBouncedReason;
    }

    public java.util.Calendar getEmailBouncedDate() {
        return this.emailBouncedDate;
    }

    public void setEmailBouncedDate(java.util.Calendar emailBouncedDate) {
        this.emailBouncedDate = emailBouncedDate;
    }

    public String getJigsaw() {
        return this.jigsaw;
    }

    public void setJigsaw(String jigsaw) {
        this.jigsaw = jigsaw;
    }

    @Column(name="EmployeeNo__c")
    public String getEmployeeNo() {
        return this.employeeNo;
    }

    public void setEmployeeNo(String employeeNo) {
        this.employeeNo = employeeNo;
    }

    @Column(name="Ssn__c")
    public String getSsn() {
        return this.ssn;
    }

    public void setSsn(String ssn) {
        this.ssn = ssn;
    }

    @Column(name="LeaveFmlaFederalMilMedPendingTaken__c")
    public double getLeaveFmlaFederalMilMedPendingTaken() {
        return this.leaveFmlaFederalMilMedPendingTaken;
    }

    public void setLeaveFmlaFederalMilMedPendingTaken(double leaveFmlaFederalMilMedPendingTaken) {
        this.leaveFmlaFederalMilMedPendingTaken = leaveFmlaFederalMilMedPendingTaken;
    }

    @Column(name="LeaveFmlaFederalPending__c")
    public double getLeaveFmlaFederalPending() {
        return this.leaveFmlaFederalPending;
    }

    public void setLeaveFmlaFederalPending(double leaveFmlaFederalPending) {
        this.leaveFmlaFederalPending = leaveFmlaFederalPending;
    }

    @ManyToOne
    @Basic(fetch=FetchType.LAZY)
    @Column(name="WorkSite__c")
    public WorkSite getWorkSite() {
        return this.workSite;
    }

    public void setWorkSite(WorkSite workSite) {
        this.workSite = workSite;
    }

    @ManyToOne
    @Basic(fetch=FetchType.LAZY)
    @Column(name="ThisWeeksSchedule__c")
    public WeeklySchedule getThisWeeksSchedule() {
        return this.thisWeeksSchedule;
    }

    public void setThisWeeksSchedule(WeeklySchedule thisWeeksSchedule) {
        this.thisWeeksSchedule = thisWeeksSchedule;
    }

    @Column(name="FmlaAnniversaryDate__c")
    public java.util.Date getFmlaAnniversaryDate() {
        return this.fmlaAnniversaryDate;
    }

    public void setFmlaAnniversaryDate(java.util.Date fmlaAnniversaryDate) {
        this.fmlaAnniversaryDate = fmlaAnniversaryDate;
    }

    @Column(name="LeaveFmlaFederalApprovedLabel__c")
    public String getLeaveFmlaFederalApprovedLabel() {
        return this.leaveFmlaFederalApprovedLabel;
    }

    public void setLeaveFmlaFederalApprovedLabel(String leaveFmlaFederalApprovedLabel) {
        this.leaveFmlaFederalApprovedLabel = leaveFmlaFederalApprovedLabel;
    }

    @Column(name="HireDate__c")
    public java.util.Date getHireDate() {
        return this.hireDate;
    }

    public void setHireDate(java.util.Date hireDate) {
        this.hireDate = hireDate;
    }

    @Column(name="HireDatePrevious__c")
    public java.util.Date getHireDatePrevious() {
        return this.hireDatePrevious;
    }

    public void setHireDatePrevious(java.util.Date hireDatePrevious) {
        this.hireDatePrevious = hireDatePrevious;
    }

    @Column(name="DepartureDatePrevious__c")
    public java.util.Date getDepartureDatePrevious() {
        return this.departureDatePrevious;
    }

    public void setDepartureDatePrevious(java.util.Date departureDatePrevious) {
        this.departureDatePrevious = departureDatePrevious;
    }

    @Column(name="LeaveFmlaFederalApprovedTakenLabel__c")
    public String getLeaveFmlaFederalApprovedTakenLabel() {
        return this.leaveFmlaFederalApprovedTakenLabel;
    }

    public void setLeaveFmlaFederalApprovedTakenLabel(String leaveFmlaFederalApprovedTakenLabel) {
        this.leaveFmlaFederalApprovedTakenLabel = leaveFmlaFederalApprovedTakenLabel;
    }

    @Column(name="LeaveFmlaFederalMilMedApprovedLabel__c")
    public String getLeaveFmlaFederalMilMedApprovedLabel() {
        return this.leaveFmlaFederalMilMedApprovedLabel;
    }

    public void setLeaveFmlaFederalMilMedApprovedLabel(String leaveFmlaFederalMilMedApprovedLabel) {
        this.leaveFmlaFederalMilMedApprovedLabel = leaveFmlaFederalMilMedApprovedLabel;
    }

    @Column(name="LeaveFmlaFederalMilMedApprovedTakenLabel__c")
    public String getLeaveFmlaFederalMilMedApprovedTakenLabel() {
        return this.leaveFmlaFederalMilMedApprovedTakenLabel;
    }

    public void setLeaveFmlaFederalMilMedApprovedTakenLabel(String leaveFmlaFederalMilMedApprovedTakenLabel) {
        this.leaveFmlaFederalMilMedApprovedTakenLabel = leaveFmlaFederalMilMedApprovedTakenLabel;
    }

    @Column(name="LeaveFmlaFederalMilMedPendingLabel__c")
    public String getLeaveFmlaFederalMilMedPendingLabel() {
        return this.leaveFmlaFederalMilMedPendingLabel;
    }

    public void setLeaveFmlaFederalMilMedPendingLabel(String leaveFmlaFederalMilMedPendingLabel) {
        this.leaveFmlaFederalMilMedPendingLabel = leaveFmlaFederalMilMedPendingLabel;
    }

    @Column(name="LeaveFmlaFederalMilMedPendingTakenLabel__c")
    public String getLeaveFmlaFederalMilMedPendingTakenLabel() {
        return this.leaveFmlaFederalMilMedPendingTakenLabel;
    }

    public void setLeaveFmlaFederalMilMedPendingTakenLabel(String leaveFmlaFederalMilMedPendingTakenLabel) {
        this.leaveFmlaFederalMilMedPendingTakenLabel = leaveFmlaFederalMilMedPendingTakenLabel;
    }

    @Column(name="LeaveFmlaFederalMilMedRemainingLabel__c")
    public String getLeaveFmlaFederalMilMedRemainingLabel() {
        return this.leaveFmlaFederalMilMedRemainingLabel;
    }

    public void setLeaveFmlaFederalMilMedRemainingLabel(String leaveFmlaFederalMilMedRemainingLabel) {
        this.leaveFmlaFederalMilMedRemainingLabel = leaveFmlaFederalMilMedRemainingLabel;
    }

    @Column(name="LeaveFmlaFederalPendingLabel__c")
    public String getLeaveFmlaFederalPendingLabel() {
        return this.leaveFmlaFederalPendingLabel;
    }

    public void setLeaveFmlaFederalPendingLabel(String leaveFmlaFederalPendingLabel) {
        this.leaveFmlaFederalPendingLabel = leaveFmlaFederalPendingLabel;
    }

    @Column(name="LeaveFmlaFederalPendingTakenLabel__c")
    public String getLeaveFmlaFederalPendingTakenLabel() {
        return this.leaveFmlaFederalPendingTakenLabel;
    }

    public void setLeaveFmlaFederalPendingTakenLabel(String leaveFmlaFederalPendingTakenLabel) {
        this.leaveFmlaFederalPendingTakenLabel = leaveFmlaFederalPendingTakenLabel;
    }

    @Column(name="LeaveFmlaFederalRemainingLabel__c")
    public String getLeaveFmlaFederalRemainingLabel() {
        return this.leaveFmlaFederalRemainingLabel;
    }

    public void setLeaveFmlaFederalRemainingLabel(String leaveFmlaFederalRemainingLabel) {
        this.leaveFmlaFederalRemainingLabel = leaveFmlaFederalRemainingLabel;
    }

    @Column(name="LeaveFmlaFederalMilMedApproved__c")
    public double getLeaveFmlaFederalMilMedApproved() {
        return this.leaveFmlaFederalMilMedApproved;
    }

    public void setLeaveFmlaFederalMilMedApproved(double leaveFmlaFederalMilMedApproved) {
        this.leaveFmlaFederalMilMedApproved = leaveFmlaFederalMilMedApproved;
    }

    @Column(name="LeaveFmlaFederalApproved__c")
    public double getLeaveFmlaFederalApproved() {
        return this.leaveFmlaFederalApproved;
    }

    public void setLeaveFmlaFederalApproved(double leaveFmlaFederalApproved) {
        this.leaveFmlaFederalApproved = leaveFmlaFederalApproved;
    }

    @Column(name="LeaveFmlaFederalMilMedApprovedTaken__c")
    public double getLeaveFmlaFederalMilMedApprovedTaken() {
        return this.leaveFmlaFederalMilMedApprovedTaken;
    }

    public void setLeaveFmlaFederalMilMedApprovedTaken(double leaveFmlaFederalMilMedApprovedTaken) {
        this.leaveFmlaFederalMilMedApprovedTaken = leaveFmlaFederalMilMedApprovedTaken;
    }

    @Column(name="LeaveFmlaFederalApprovedTaken__c")
    public double getLeaveFmlaFederalApprovedTaken() {
        return this.leaveFmlaFederalApprovedTaken;
    }

    public void setLeaveFmlaFederalApprovedTaken(double leaveFmlaFederalApprovedTaken) {
        this.leaveFmlaFederalApprovedTaken = leaveFmlaFederalApprovedTaken;
    }

    @Column(name="LeaveFmlaFederalMilMedPending__c")
    public double getLeaveFmlaFederalMilMedPending() {
        return this.leaveFmlaFederalMilMedPending;
    }

    public void setLeaveFmlaFederalMilMedPending(double leaveFmlaFederalMilMedPending) {
        this.leaveFmlaFederalMilMedPending = leaveFmlaFederalMilMedPending;
    }

    @Column(name="LeaveFmlaFederalRemaining__c")
    public double getLeaveFmlaFederalRemaining() {
        return this.leaveFmlaFederalRemaining;
    }

    public void setLeaveFmlaFederalRemaining(double leaveFmlaFederalRemaining) {
        this.leaveFmlaFederalRemaining = leaveFmlaFederalRemaining;
    }

    @Column(name="LeaveFmlaFederalMilMedRemaining__c")
    public double getLeaveFmlaFederalMilMedRemaining() {
        return this.leaveFmlaFederalMilMedRemaining;
    }

    public void setLeaveFmlaFederalMilMedRemaining(double leaveFmlaFederalMilMedRemaining) {
        this.leaveFmlaFederalMilMedRemaining = leaveFmlaFederalMilMedRemaining;
    }

    @Column(name="LeaveFmlaFederalPendingTaken__c")
    public double getLeaveFmlaFederalPendingTaken() {
        return this.leaveFmlaFederalPendingTaken;
    }

    public void setLeaveFmlaFederalPendingTaken(double leaveFmlaFederalPendingTaken) {
        this.leaveFmlaFederalPendingTaken = leaveFmlaFederalPendingTaken;
    }









    /**
     * Java model for the Salutation picklist.
     *
     * This enum was auto-generated. It is considered owned
     * by the Force.com database.
     **/
    @javax.annotation.Generated(value="com.force.sdk.codegen.ForceJPAClassGenerator")
    public enum SalutationEnum implements com.force.sdk.jpa.model.PicklistValueEnum {

        MR_(true,false,"Mr.","Mr."),
        MS_(true,false,"Ms.","Ms."),
        MRS_(true,false,"Mrs.","Mrs."),
        DR_(true,false,"Dr.","Dr."),
        PROF_(true,false,"Prof.","Prof."),
        ;

        private boolean isActive;
        private boolean isDefaultValue;
        private String label;
        private String value;

        private SalutationEnum(boolean isActive, boolean isDefaultValue, String label, String value) {
            this.isActive = isActive;
            this.isDefaultValue = isDefaultValue;
            this.label = label;
            this.value = value;
        }

        @Override
        public boolean isActive() { return this.isActive; }

        @Override
        public boolean isDefaultValue() { return this.isDefaultValue; }

        @Override
        public String label() { return this.label; }

        @Override
        public String value() { return this.value; }

        public static SalutationEnum fromValue(String value) {
            if (value == null) return null;

            for (SalutationEnum picklistValueEnum : values()) {
                if (value.equals(picklistValueEnum.value())) {
                    return picklistValueEnum;
                }
            }

            return null;
        }
    }

























    /**
     * Java model for the LeadSource picklist.
     *
     * This enum was auto-generated. It is considered owned
     * by the Force.com database.
     **/
    @javax.annotation.Generated(value="com.force.sdk.codegen.ForceJPAClassGenerator")
    public enum LeadSourceEnum implements com.force.sdk.jpa.model.PicklistValueEnum {

        WEB(true,false,"Web","Web"),
        PHONE_INQUIRY(true,false,"Phone Inquiry","Phone Inquiry"),
        PARTNER_REFERRAL(true,false,"Partner Referral","Partner Referral"),
        PURCHASED_LIST(true,false,"Purchased List","Purchased List"),
        OTHER(true,false,"Other","Other"),
        ;

        private boolean isActive;
        private boolean isDefaultValue;
        private String label;
        private String value;

        private LeadSourceEnum(boolean isActive, boolean isDefaultValue, String label, String value) {
            this.isActive = isActive;
            this.isDefaultValue = isDefaultValue;
            this.label = label;
            this.value = value;
        }

        @Override
        public boolean isActive() { return this.isActive; }

        @Override
        public boolean isDefaultValue() { return this.isDefaultValue; }

        @Override
        public String label() { return this.label; }

        @Override
        public String value() { return this.value; }

        public static LeadSourceEnum fromValue(String value) {
            if (value == null) return null;

            for (LeadSourceEnum picklistValueEnum : values()) {
                if (value.equals(picklistValueEnum.value())) {
                    return picklistValueEnum;
                }
            }

            return null;
        }
    }
}

@naaman
Copy link

naaman commented Sep 13, 2011

That issue might have been fixed in 22.0.6-BETA, but I'm not entirely sure. Can you bump up the version to 22.0.6-BETA and try re-generating schema?

@keithpeters
Copy link
Author

Has the maven-force-plugin 22.0.6-BETA been published?

[ERROR] Plugin com.force:maven-force-plugin:22.0.6-BETA or one of its dependencies could not be resolved: Failed to read artifact descriptor for com.force:maven-force-plugin:jar:22.0.6-BETA: Failure to find com.force:maven-force-plugin:pom:22.0.6-BETA in http://www.datanucleus.org/downloads/maven2/ was cached in the local repository, resolution will not be reattempted until the update interval of DataNucleus_2 has elapsed or updates are forced -> [Help 1]
org.apache.maven.plugin.PluginResolutionException: Plugin com.force:maven-force-plugin:22.0.6-BETA or one of its dependencies could not be resolved: Failed to read artifact descriptor for com.force:maven-force-plugin:jar:22.0.6-BETA
    at org.apache.maven.plugin.internal.DefaultPluginDependenciesResolver.resolve(DefaultPluginDependenciesResolver.java:129)
    at org.apache.maven.plugin.internal.DefaultMavenPluginManager.getPluginDescriptor(DefaultMavenPluginManager.java:142)
    at org.apache.maven.plugin.internal.DefaultMavenPluginManager.getMojoDescriptor(DefaultMavenPluginManager.java:261)
    at org.apache.maven.plugin.DefaultBuildPluginManager.getMojoDescriptor(DefaultBuildPluginManager.java:185)
    at org.apache.maven.lifecycle.internal.DefaultLifecycleExecutionPlanCalculator.calculateLifecycleMappings(DefaultLifecycleExecutionPlanCalculator.java:280)
    at org.apache.maven.lifecycle.internal.DefaultLifecycleExecutionPlanCalculator.calculateMojoExecutions(DefaultLifecycleExecutionPlanCalculator.java:193)
    at org.apache.maven.lifecycle.internal.DefaultLifecycleExecutionPlanCalculator.calculateExecutionPlan(DefaultLifecycleExecutionPlanCalculator.java:112)
    at org.apache.maven.lifecycle.internal.DefaultLifecycleExecutionPlanCalculator.calculateExecutionPlan(DefaultLifecycleExecutionPlanCalculator.java:129)
    at org.apache.maven.lifecycle.internal.BuilderCommon.resolveBuildPlan(BuilderCommon.java:92)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:81)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:319)
    at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
    at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537)
    at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196)
    at org.apache.maven.cli.MavenCli.main(MavenCli.java:141)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)
Caused by: org.sonatype.aether.resolution.ArtifactDescriptorException: Failed to read artifact descriptor for com.force:maven-force-plugin:jar:22.0.6-BETA
    at org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.loadPom(DefaultArtifactDescriptorReader.java:282)
    at org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.readArtifactDescriptor(DefaultArtifactDescriptorReader.java:172)
    at org.sonatype.aether.impl.internal.DefaultRepositorySystem.readArtifactDescriptor(DefaultRepositorySystem.java:316)
    at org.apache.maven.plugin.internal.DefaultPluginDependenciesResolver.resolve(DefaultPluginDependenciesResolver.java:115)
    ... 25 more
Caused by: org.sonatype.aether.resolution.ArtifactResolutionException: Failure to find com.force:maven-force-plugin:pom:22.0.6-BETA in http://www.datanucleus.org/downloads/maven2/ was cached in the local repository, resolution will not be reattempted until the update interval of DataNucleus_2 has elapsed or updates are forced
    at org.sonatype.aether.impl.internal.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:541)
    at org.sonatype.aether.impl.internal.DefaultArtifactResolver.resolveArtifacts(DefaultArtifactResolver.java:220)
    at org.sonatype.aether.impl.internal.DefaultArtifactResolver.resolveArtifact(DefaultArtifactResolver.java:197)
    at org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.loadPom(DefaultArtifactDescriptorReader.java:267)
    ... 28 more
Caused by: org.sonatype.aether.transfer.ArtifactNotFoundException: Failure to find com.force:maven-force-plugin:pom:22.0.6-BETA in http://www.datanucleus.org/downloads/maven2/ was cached in the local repository, resolution will not be reattempted until the update interval of DataNucleus_2 has elapsed or updates are forced
    at org.sonatype.aether.impl.internal.DefaultUpdateCheckManager.checkArtifact(DefaultUpdateCheckManager.java:190)
    at org.sonatype.aether.impl.internal.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:430)
    ... 31 more
[ERROR] 

@naaman
Copy link

naaman commented Sep 13, 2011

Keith,
I chatted with another engineer here and this seems to be a different issue. Can you create a simple project that reproduces this problem and post a link to the repo here?

@naaman
Copy link

naaman commented Sep 13, 2011

Re: above, can you also grant login access to a sandbox or DE org (i.e. non-production) and give us the org Id after you've granted login access?

To grant login access:
Choose Setup | My Personal Information | Grant Login Access.
Set the access expiration date for salesforce.com support (usually 7 business days).
Click Save.

To get the org Id: Choose Setup | Company Profile | Company Information

@naaman naaman closed this as completed Nov 1, 2011
@vkanteti
Copy link

vkanteti commented Mar 7, 2012

Hi, I'm also facing exact same issue from couple days.Is it solved? Please can you post the solution for this.
Thanks in advance.

@roybanon1
Copy link

Hi,
I am having the same issue with the ClassCast:
Caused by: java.lang.ClassCastException: org.datanucleus.store.types.sco.simple.GregorianCalendar cannot be cast to com.xxx.model.Account
at com.xxx.model.Contact.jdoReplaceField(Contact.java)
at com.force.sdk.jpa.model.BaseForceObject.jdoReplaceFields(BaseForceObject.java)

Does anyone has any idea how to solve this issue (using 22.0.6-BETA)?

@CSAC1
Copy link

CSAC1 commented Jul 31, 2015

Hi Does anyone have a fix for this? I have generated classes using force 22.0.7 version and enhanced it with 2.1.0 release. I also face classCastExceptions!

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

No branches or pull requests

5 participants