changing it to java.util.Date and rebuilding fixes the problem, then going
back to o.a.i.applib.Date breaks it again.

I am using Eclipse too!

For interest I'll try a class with just one date field and see what happens.

Then I'll try the Joda library instead.



On Thu, Jul 9, 2015 at 2:51 PM, Dan Haywood <[email protected]>
wrote:

> I'm not completely sure the issue is from using o.a.i.applib.value.Date
> (though in any case you probably should be using one of the Joda date
> classes instead).
>
> Rather, when I've seen this DN issue it's because it has attempted -
> through a race condition or for some other hard-to-replicate reason - to
> re-enhance an already enhanced class, or at any rate the enhancement is
> out-of-whack with the actual fields of the class.
>
> I've only ever hit this issue when using Eclipse and relying on the DN
> plugin's automatic enhancement.  I've never had the issue when using
> IntelliJ, or from the command line.
>
> When the issue went away by you moving away from o.a.i.applib.value.Date to
> something else, it was probably nothing more than the code got recompiled
> and then re-enhanced correctly.  Try reverting back to
> o.a.i.applib.value.Date and it'll probably still work.  (If it doesn't,
> then that'll be a useful test case for us to work from!)
>
> Thx
> Dan
>
>
>
>
>
>
> On 9 July 2015 at 05:45, Stephen Cameron <[email protected]>
> wrote:
>
> > Reason was me trying to use:
> > org.apache.isis.applib.value.Date
> >
> > ---------- Forwarded message ----------
> > From: Stephen Cameron <[email protected]>
> > Date: Thu, Jul 9, 2015 at 1:32 PM
> > Subject: java.lang.IllegalArgumentException: out of field index :15
> > To: [email protected]
> >
> >
> > Hi,
> >
> > I have a DataNucleus error, with a not very informative message!
> >
> >
> >
> > Caused by: java.lang.IllegalArgumentException: out of field index :15
> >     at
> >
> >
> au.com.scds.chats.dom.modules.participant.SocialFactors.jdoCopyField(SocialFactors.java)
> >     at
> >
> >
> au.com.scds.chats.dom.modules.participant.SocialFactors.jdoCopyFields(SocialFactors.java)
> >     at
> >
> org.datanucleus.state.JDOStateManager.saveFields(JDOStateManager.java:694)
> >     at
> >
> >
> org.datanucleus.state.JDOStateManager.initialiseForPersistentNew(JDOStateManager.java:437)
> >
> >
> >
> > Class is presently:
> >
> > package au.com.scds.chats.dom.modules.participant;
> >
> > import javax.jdo.annotations.Column;
> > import javax.jdo.annotations.IdentityType;
> > import javax.jdo.annotations.VersionStrategy;
> >
> > import org.apache.isis.applib.DomainObjectContainer;
> > import org.apache.isis.applib.annotation.BookmarkPolicy;
> > import org.apache.isis.applib.annotation.DomainObject;
> > import org.apache.isis.applib.annotation.DomainObjectLayout;
> > import org.apache.isis.applib.annotation.MemberOrder;
> > import org.apache.isis.applib.annotation.Property;
> > import org.apache.isis.applib.annotation.Where;
> > import org.apache.isis.applib.value.Date;
> >
> > @javax.jdo.annotations.PersistenceCapable(identityType =
> > IdentityType.DATASTORE)
> > @javax.jdo.annotations.DatastoreIdentity(strategy =
> > javax.jdo.annotations.IdGeneratorStrategy.IDENTITY, column = "id")
> > @javax.jdo.annotations.Version(strategy = VersionStrategy.VERSION_NUMBER,
> > column = "version")
> > @DomainObject(objectType = "SOCIAL-FACTORS")
> > @DomainObjectLayout(bookmarking = BookmarkPolicy.AS_ROOT)
> > public class SocialFactors {
> >
> >     public String title() {
> >         return "Social Factors of Participant: " + parent.getFullname();
> >     }
> >
> >     // {{ ParentParticipant (property)
> >     private Participant parent;
> >
> >     @Column(allowsNull = "false")
> >     @Property(hidden = Where.EVERYWHERE)
> >     public Participant getParentParticipant() {
> >         return parent;
> >     }
> >
> >     public void setParentParticipant(final Participant parent) {
> >         if (this.parent == null && parent != null)
> >             this.parent = parent;
> >     }
> >
> >     // }}
> >
> >     // {{ LimitingHealthIssues (property)
> >     private String limitingHealthIssues;
> >
> >     @Column(allowsNull = "true")
> >     @MemberOrder(sequence = "1")
> >     public String getLimitingHealthIssues() {
> >         return limitingHealthIssues;
> >     }
> >
> >     public void setLimitingHealthIssues(final String
> limitingHealthIssues)
> > {
> >         this.limitingHealthIssues = limitingHealthIssues;
> >     }
> >
> >     // }}
> >
> >     // {{ OtherLimitingFactors (property)
> >     private String otherLimitingFactors;
> >
> >     @Column(allowsNull = "true")
> >     @MemberOrder(sequence = "2")
> >     public String getOtherLimitingFactors() {
> >         return otherLimitingFactors;
> >     }
> >
> >     public void setOtherLimitingFactors(final String
> otherLimitingFactors)
> > {
> >         this.otherLimitingFactors = otherLimitingFactors;
> >     }
> >
> >     // }}
> >
> >     // {{ DriversLicence (property)
> >     private String driversLicence;
> >
> >     @Column(allowsNull = "true")
> >     @MemberOrder(sequence = "3")
> >     public String getDriversLicence() {
> >         return driversLicence;
> >     }
> >
> >     public void setDriversLicence(final String driversLicence) {
> >         this.driversLicence = driversLicence;
> >     }
> >
> >     // }}
> >
> >     // {{ DrivingAbility (property)
> >     private String drivingAbility;
> >
> >     @Column(allowsNull = "true")
> >     @MemberOrder(sequence = "4")
> >     public String getDrivingAbility() {
> >         return drivingAbility;
> >     }
> >
> >     public void setDrivingAbility(final String drivingAbility) {
> >         this.drivingAbility = drivingAbility;
> >     }
> >
> >     // }}
> >
> >     // {{ DrivingConfidence (property)
> >     private String drivingConfidence;
> >
> >     @Column(allowsNull = "true")
> >     @MemberOrder(sequence = "5")
> >     public String getDrivingConfidence() {
> >         return drivingConfidence;
> >     }
> >
> >     public void setDrivingConfidence(final String drivingConfidence) {
> >         this.drivingConfidence = drivingConfidence;
> >     }
> >
> >     // }}
> >
> >     // {{ PlaceOfOrigin (property)
> >     private String placeOfOrigin;
> >
> >     @Column(allowsNull = "true")
> >     @MemberOrder(sequence = "6")
> >     public String getPlaceOfOrigin() {
> >         return placeOfOrigin;
> >     }
> >
> >     public void setPlaceOfOrigin(final String placeOfOrigin) {
> >         this.placeOfOrigin = placeOfOrigin;
> >     }
> >
> >     // }}
> >
> >     // {{ DateofSettlement (property)
> >     private Date dateOfSettlement;
> >
> >     @Column(allowsNull = "true")
> >     @MemberOrder(sequence = "7")
> >     public Date getDateofSettlement() {
> >         return dateOfSettlement;
> >     }
> >
> >     public void setDateofSettlement(final Date dateOfSettlement) {
> >         this.dateOfSettlement = dateOfSettlement;
> >     }
> >
> >     // }}
> >
> >     // {{ closeRelatives (property)
> >     private String closeRelatives;
> >
> >     @Column(allowsNull = "true")
> >     @MemberOrder(sequence = "8")
> >     public String getCloseRelatives() {
> >         return closeRelatives;
> >     }
> >
> >     public void setCloseRelatives(final String closeRelatives) {
> >         this.closeRelatives = closeRelatives;
> >     }
> >
> >     // }}
> >
> >     // {{ closeRelativeAndFriendCount (property)
> >     private Integer closeRelativeAndFriendCount;
> >
> >     @Column(allowsNull = "true")
> >     @MemberOrder(sequence = "9")
> >     public Integer getCloseRelativeAndFriendCount() {
> >         return closeRelativeAndFriendCount;
> >     }
> >
> >     public void setCloseRelativeAndFriendCount(
> >             final Integer closeRelativeAndFriendCount) {
> >         this.closeRelativeAndFriendCount = closeRelativeAndFriendCount;
> >     }
> >
> >     // }}
> >
> >     // {{ ProximityOfRelatives (property)
> >     private String proximityOfRelatives;
> >
> >     @Column(allowsNull = "true")
> >     @MemberOrder(sequence = "10")
> >     public String getProximityOfRelatives() {
> >         return proximityOfRelatives;
> >     }
> >
> >     public void setProximityOfRelatives(final String
> proximityOfRelatives)
> > {
> >         this.proximityOfRelatives = proximityOfRelatives;
> >     }
> >
> >     // }}
> >
> >     // {{ ProximityOfFriends (property)
> >     private String proximityOfFriends;
> >
> >     @Column(allowsNull = "true")
> >     @MemberOrder(sequence = "11")
> >     public String getProximityOfFriends() {
> >         return proximityOfFriends;
> >     }
> >
> >     @Column(allowsNull = "true")
> >     public void setProximityOfFriends(final String proximityOfFriends) {
> >         this.proximityOfFriends = proximityOfFriends;
> >     }
> >
> >     // }}
> >
> >     // {{ InvolvementInGroupsClubs (property)
> >     private String involvementInGroupsClubs;
> >
> >     @Column(allowsNull = "true")
> >     @MemberOrder(sequence = "12")
> >     public String getInvolvementInGroupsClubs() {
> >         return involvementInGroupsClubs;
> >     }
> >
> >     public void setInvolvementInGroupsClubs(final String involvement) {
> >         this.involvementInGroupsClubs = involvement;
> >     }
> >
> >     // }}
> >
> >     // {{ involvementInInterestsHobbies (property)
> >     private String involvementInInterestsHobbies;
> >
> >     @Column(allowsNull = "true")
> >     @MemberOrder(sequence = "13")
> >     public String getInvolvementInInterestsHobbies() {
> >         return involvementInInterestsHobbies;
> >     }
> >
> >     public void setInvolvementInInterestsHobbies(
> >             final String involvmentInInterestsHobbies) {
> >         this.involvementInInterestsHobbies =
> involvmentInInterestsHobbies;
> >     } // }}
> >
> >     // {{ injected dependencies
> >     @javax.inject.Inject
> >     @SuppressWarnings("unused")
> >     private DomainObjectContainer container;
> >     // }}
> >
> > }
> >
>

Reply via email to