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; > > // }} > > > > } > > >
