Hi, I tried adding the isis.persistor.datanucleus.RegisterEntities.packagePrefix
key in isis.properties and in persistor_datanucleus.properties (where is was already, but not set to the correct value). Strangely this has not fixed the problem. Is is possible for you take a look? I've created a release v0.0.1 in github for the project, using Isis 1.9. I want to use 1.9 but till I get this one sorted I am staying with 1.8. https://github.com/Stephen-Cameron-Data-Services/isis-chats/releases To see the issue just try creating a new Volunteer from the menu, it will hang after you submit the new person's names. In contrast creatning a new Participant, basically the same thing works fine. Thx Steve On Sat, Aug 1, 2015 at 11:23 AM, Stephen Cameron <[email protected] > wrote: > That warning is for 1.9 obviously. > > On Sat, Aug 1, 2015 at 9:49 AM, Stephen Cameron < > [email protected]> wrote: > >> Hi Dan >> >> Thanks for the feedback, I was going to try using 1.8 again today and >> will do so. >> >> If I do a clean install on the whole project now I get an warning on the >> webapp project: >> [WARNING] The POM for >> org.apache.isis.core:isis-core-viewer-restfulobjects-rendering:jar:1.9.0-20150731.110526-139 >> is missing, no dependency information available. >> >> Will provide more info once I test the suggestions. >> >> >> >> >> On Sat, Aug 1, 2015 at 12:45 AM, Dan Haywood < >> [email protected]> wrote: >> >>> Hi Steve, >>> >>> funny, hit almost the same issue just today while implementing ISIS-1182 >>> [1]. It's fixed on 1.9.0-SNAPSHOT but might also work fine on 1.8.0. >>> >>> As you've discovered, DN can sometimes trip up if we rely on it to lazily >>> build its metamodel. In the past we've seen issues this occur with it >>> submitting invalid SQL (when it only knows about a superclass table but >>> not >>> yet any of the subclasses), and we've also seen deadlocks on HSQLDB when >>> DDL is intermingled with DML. I think you are seeing this second case >>> yourself. >>> >>> The fix - that works on 1.9.0-SNAPSHOT at least - is to use specify the >>> >>> isis.persistor.datanucleus.RegisterEntities.packagePrefix >>> >>> key in isis.properties. This causes Isis to go searching for and >>> registering all domain entities. >>> >>> We introduced this key a good while back, but I also recall that in one >>> of >>> the more recent versions (1.7.0, 1.8.0?) it got broken again. Anyway, >>> I've >>> added some migration notes for 1.8.0 because with ISIS-1182 it seems to >>> be >>> more critical again to get it right. >>> >>> Let me know how you get on. >>> >>> Thx >>> Dan >>> >>> >>> [1] https://issues.apache.org/jira/browse/ISIS-1182 >>> [2] >>> >>> http://isis.apache.org/migration-notes.html#_migration-notes_1.8.0-to-1.9.0_specify-all-dom-packages >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> On 31 July 2015 at 14:35, Stephen Cameron <[email protected]> >>> wrote: >>> >>> > More info, yes it seems the Volunteer table is not created at the same >>> time >>> > as the other tables, until I actually try to add an entry, Isis seems >>> to >>> > check for it, finds it missing and creates it.I am doing almost >>> exactly the >>> > same procedure successfully with another table that is already created, >>> > participant. >>> > >>> > Here is the current striped down Volunteer class defintion: >>> > package au.com.scds.chats.dom.modules.volunteer; >>> > >>> > import javax.jdo.annotations.Column; >>> > import javax.jdo.annotations.IdentityType; >>> > >>> > import org.apache.isis.applib.DomainObjectContainer; >>> > import org.apache.isis.applib.annotation.MemberOrder; >>> > >>> > import au.com.scds.chats.dom.modules.general.Person; >>> > >>> > >>> > @javax.jdo.annotations.PersistenceCapable(identityType = >>> > IdentityType.DATASTORE) >>> > @javax.jdo.annotations.DatastoreIdentity(strategy = >>> > javax.jdo.annotations.IdGeneratorStrategy.IDENTITY, column = "id") >>> > public class Volunteer { >>> > >>> > // {{ Person (property) >>> > private Person person; >>> > >>> > @Column(allowsNull="false") >>> > @MemberOrder(sequence = "1") >>> > public Person getPerson() { >>> > return person; >>> > } >>> > >>> > public void setPerson(final Person person) { >>> > this.person = person; >>> > } >>> > >>> > // }} >>> > >>> > @javax.inject.Inject >>> > @SuppressWarnings("unused") >>> > private DomainObjectContainer container; >>> > >>> > // endregion >>> > } >>> > >>> > >>> > >>> > On Fri, Jul 31, 2015 at 10:38 PM, Stephen Cameron < >>> > [email protected]> wrote: >>> > >>> > > Hi folks >>> > > >>> > > I have a problem that I cannot solve and hoping someone might have >>> seen >>> > > similar. >>> > > >>> > > When I create a new entity the server freezes, its just the one kind >>> of >>> > > entity. >>> > > >>> > > In the server console I see the following output. >>> > > >>> > > 22:13:26,989 [Schema 455726379@qtp-1318209130-0 >>> DEBUG] >>> > > ALTER TABLE "Activity" ADD CONSTRAINT "Activity_FK2" FOREIGN KEY >>> > > ("activities_id_OID") REFERENCES "Participant" ("id") >>> > > 22:13:26,991 [Schema 455726379@qtp-1318209130-0 >>> DEBUG] >>> > > Execution Time = 2 ms >>> > > 22:13:26,991 [Schema 455726379@qtp-1318209130-0 >>> DEBUG] >>> > > Creating foreign key constraint : "Activity_FK1" in catalog "" >>> schema "" >>> > > 22:13:26,991 [Schema 455726379@qtp-1318209130-0 >>> DEBUG] >>> > > ALTER TABLE "Activity" ADD CONSTRAINT "Activity_FK1" FOREIGN KEY >>> > > ("provider_id_OID") REFERENCES "Provider" ("id") >>> > > 22:13:26,992 [Schema 455726379@qtp-1318209130-0 >>> DEBUG] >>> > > Execution Time = 1 ms >>> > > 22:13:26,993 [Schema 455726379@qtp-1318209130-0 >>> DEBUG] >>> > > Creating index "Activity_N49" in catalog "" schema "" >>> > > 22:13:26,993 [Schema 455726379@qtp-1318209130-0 >>> DEBUG] >>> > > CREATE INDEX "Activity_N49" ON "Activity" ("provider_id_OID") >>> > > 22:13:26,993 [Schema 455726379@qtp-1318209130-0 >>> DEBUG] >>> > > Execution Time = 0 ms >>> > > 22:13:26,994 [Schema 455726379@qtp-1318209130-0 >>> DEBUG] >>> > > Schema Transaction committing with connection >>> > > >>> > >>> "org.datanucleus.store.rdbms.datasource.dbcp.PoolingDataSource$PoolGuardConnectionWrapper@587ed84a >>> > > " >>> > > 22:13:26,994 [Schema 455726379@qtp-1318209130-0 >>> DEBUG] >>> > > Schema Transaction closing with connection >>> > > >>> > >>> "org.datanucleus.store.rdbms.datasource.dbcp.PoolingDataSource$PoolGuardConnectionWrapper@587ed84a >>> > > " >>> > > 22:13:33,718 [PropertiesFactory 455726379@qtp-1318209130-0 INFO >>> ] >>> > > Loading properties files from >>> > > >>> > >>> jar:file:/C:/Users/stevec/.m2/repository/org/apache/wicket/wicket-extensions/6.17.0/wicket-extensions-6.17.0.jar!/org/apache/wicket/extensions/Initializer.properties >>> > > with loader >>> > > org.apache.wicket.resource.IsoPropertiesFilePropertiesLoader@723b0f4d >>> > > 22:13:55,556 [PropertiesFactory 455726379@qtp-1318209130-0 INFO >>> ] >>> > > Loading properties files from >>> > > >>> > >>> jar:file:/C:/Users/stevec/.m2/repository/org/apache/isis/viewer/isis-viewer-wicket-ui/1.9.0-SNAPSHOT/isis-viewer-wicket-ui-1.9.0-SNAPSHOT.jar!/org/apache/isis/viewer/wicket/ui/components/actions/ActionParametersFormPanel.properties >>> > > with loader >>> > > org.apache.wicket.resource.IsoPropertiesFilePropertiesLoader@723b0f4d >>> > > 1 >>> > > 2 >>> > > 3 >>> > > 22:14:05,008 [Schema 455726379@qtp-1318209130-0 >>> DEBUG] >>> > > Column ""Volunteer"."id"" added to internal representation of table. >>> > > 22:14:05,008 [Schema 455726379@qtp-1318209130-0 >>> DEBUG] >>> > > Field [DATASTORE_ID] -> Column(s) ["Volunteer"."id"] using mapping of >>> > type >>> > > "org.datanucleus.store.rdbms.mapping.java.DatastoreIdMapping" >>> > > (org.datanucleus.store.rdbms.mapping.datastore.BigIntRDBMSMapping) >>> > > 22:14:05,009 [Schema 455726379@qtp-1318209130-0 >>> DEBUG] >>> > > Table "Volunteer" will manage the persistence of the fields for class >>> > > au.com.scds.chats.dom.modules.volunteer.Volunteer (inheritance >>> > > strategy="new-table") >>> > > 22:14:05,009 [Schema 455726379@qtp-1318209130-0 >>> DEBUG] >>> > > Column ""Volunteer"."person_id_OID"" added to internal >>> representation of >>> > > table. >>> > > 22:14:05,009 [Schema 455726379@qtp-1318209130-0 >>> DEBUG] >>> > > Field [au.com.scds.chats.dom.modules.volunteer.Volunteer.person] -> >>> > > Column(s) ["Volunteer"."person_id_OID"] using mapping of type >>> > > "org.datanucleus.store.rdbms.mapping.java.PersistableMapping" >>> > > (org.datanucleus.store.rdbms.mapping.datastore.BigIntRDBMSMapping) >>> > > 22:14:05,009 [Schema 455726379@qtp-1318209130-0 >>> DEBUG] >>> > > Column ""Volunteer"."status"" added to internal representation of >>> table. >>> > > 22:14:05,010 [Schema 455726379@qtp-1318209130-0 >>> DEBUG] >>> > > Field [au.com.scds.chats.dom.modules.volunteer.Volunteer.status] -> >>> > > Column(s) ["Volunteer"."status"] using mapping of type >>> > > "org.datanucleus.store.rdbms.mapping.java.EnumMapping" >>> > > (org.datanucleus.store.rdbms.mapping.datastore.VarCharRDBMSMapping) >>> > > 22:14:05,010 [Schema 455726379@qtp-1318209130-0 >>> DEBUG] >>> > > Table/View "Volunteer" has been initialised >>> > > 22:14:05,010 [Schema 455726379@qtp-1318209130-0 >>> DEBUG] >>> > > Schema Transaction started with connection >>> > > >>> > >>> "org.datanucleus.store.rdbms.datasource.dbcp.PoolingDataSource$PoolGuardConnectionWrapper@1855dae >>> > " >>> > > with isolation "serializable" >>> > > 22:14:05,015 [Schema 455726379@qtp-1318209130-0 >>> DEBUG] >>> > > Check of existence of "Volunteer" returned no table >>> > > 22:14:05,015 [Schema 455726379@qtp-1318209130-0 >>> DEBUG] >>> > > Creating table "Volunteer" >>> > > 22:14:05,015 [Schema 455726379@qtp-1318209130-0 >>> DEBUG] >>> > > CREATE TABLE "Volunteer" >>> > > ( >>> > > "id" BIGINT GENERATED BY DEFAULT AS IDENTITY, >>> > > "person_id_OID" BIGINT NULL, >>> > > "status" NVARCHAR(255) NOT NULL, >>> > > CONSTRAINT "Volunteer_PK" PRIMARY KEY ("id") >>> > > ) >>> > > 22:14:05,016 [Schema 455726379@qtp-1318209130-0 >>> DEBUG] >>> > > Execution Time = 1 ms >>> > > 22:14:05,020 [Schema 455726379@qtp-1318209130-0 >>> DEBUG] >>> > > Creating foreign key constraint : "Volunteer_FK1" in catalog "" >>> schema "" >>> > > 22:14:05,021 [Schema 455726379@qtp-1318209130-0 >>> DEBUG] >>> > > ALTER TABLE "Volunteer" ADD CONSTRAINT "Volunteer_FK1" FOREIGN KEY >>> > > ("person_id_OID") REFERENCES "Person" ("id") >>> > > >>> > > I'm still no debugging properly yet, so the 1,2,3 are from the >>> following >>> > > routine >>> > > >>> > > public Volunteer create( >>> > > final @ParameterLayout(named = "First name") String >>> > firstname, >>> > > final @ParameterLayout(named = "Middle name(s)") String >>> > > middlename, >>> > > final @ParameterLayout(named = "Surname") String >>> surname) { >>> > > System.out.println("1"); >>> > > final Volunteer volunteer = container >>> > > .newTransientInstance(Volunteer.class); >>> > > final Person person = >>> > container.newTransientInstance(Person.class); >>> > > person.setFirstname(firstname); >>> > > person.setMiddlename(middlename); >>> > > person.setSurname(surname); >>> > > container.persistIfNotAlready(person); >>> > > System.out.println("2"); >>> > > volunteer.setPerson(person); >>> > > container.persistIfNotAlready(volunteer); >>> > > System.out.println("3"); >>> > > return volunteer; >>> > > } >>> > > >>> > > What seems strange in the output is that the table Volunteer doesn't >>> seem >>> > > to be created in the same way as other tables. In fact its after a >>> > > transaction is committed: >>> > > >>> > > DEBUG] Schema Transaction closing with connection >>> > > >>> > >>> "org.datanucleus.store.rdbms.datasource.dbcp.PoolingDataSource$PoolGuardConnectionWrapper@587ed84a >>> > > " >>> > > >>> > > Also, that Volunteer table is created after the calls to add an >>> entry in >>> > > the create method. >>> > > >>> > > HFH >>> > > Steve >>> > > >>> > > >>> > >>> >> >> >
