Hi,
I've setup isisaddons (command, quartz) in order to check for changed files and
to create objects accordingly.
When I execute the import via FixtureScripts everything works as expected, but
via Quartz I get the following stacktrace:
16:17:03,904 [Datastore SchedulerQuartzConfigXml_Worker-1 ERROR]
Add request failed : INSERT INTO "RELEASES_PROVIDEDSERVICES"
("RELEASE_ID","PROVIDESSERVICE_ID") VALUES (?,?)
org.datanucleus.store.rdbms.exceptions.MappedDatastoreException: INSERT INTO
"RELEASES_PROVIDEDSERVICES" ("RELEASE_ID","PROVIDESSERVICE_ID") VALUES (?,?)
at
org.datanucleus.store.rdbms.scostore.JoinSetStore.doInternalAdd(JoinSetStore.java:715)
at
org.datanucleus.store.rdbms.scostore.JoinSetStore.add(JoinSetStore.java:297)
at
org.datanucleus.store.types.wrappers.backed.TreeSet.add(TreeSet.java:674)
at
org.datanucleus.store.types.SCOUtils.updateCollectionWithCollection(SCOUtils.java:870)
at
org.datanucleus.store.types.wrappers.backed.TreeSet.initialise(TreeSet.java:148)
at
org.datanucleus.store.types.wrappers.backed.TreeSet.initialise(TreeSet.java:68)
at
org.datanucleus.store.types.SCOUtils.wrapAndReplaceSCOField(SCOUtils.java:176)
at
org.datanucleus.state.StateManagerImpl.setObjectField(StateManagerImpl.java:1804)
at ife.dep.Release.dnSetcapabilities(Release.java)
at ife.dep.Release.setCapabilities(Release.java:93)
at
ife.util.ApplicationReader.handleRelease(ApplicationReader.java:136)
at
ife.util.ApplicationReader.handleReleases(ApplicationReader.java:120)
at
ife.util.ApplicationReader.handleApplication(ApplicationReader.java:109)
at ife.util.ApplicationReader.init(ApplicationReader.java:90)
at
ife.util.MasterDataUpdateCommand.execute(MasterDataUpdateCommand.java:32)
at
ife.util.MasterDataBackgroundCommandsJob.execute(MasterDataBackgroundCommandsJob.java:26)
at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
at
org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:573)
Caused by: java.sql.SQLIntegrityConstraintViolationException: integrity
constraint violation: unique constraint or index violation;
"RELEASES_PROVIDEDSERVICES_PK" table: "RELEASES_PROVIDEDSERVICES"
at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source)
at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source)
at org.hsqldb.jdbc.JDBCPreparedStatement.fetchResult(Unknown
Source)
at org.hsqldb.jdbc.JDBCPreparedStatement.executeUpdate(Unknown
Source)
at
com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.executeUpdate(NewProxyPreparedStatement.java:105)
at
org.datanucleus.store.rdbms.ParamLoggingPreparedStatement.executeUpdate(ParamLoggingPreparedStatement.java:393)
at
org.datanucleus.store.rdbms.SQLController.executeStatementUpdate(SQLController.java:431)
at
org.datanucleus.store.rdbms.scostore.JoinSetStore.doInternalAdd(JoinSetStore.java:694)
... 17 more
Caused by: org.hsqldb.HsqlException: integrity constraint violation: unique
constraint or index violation; "RELEASES_PROVIDEDSERVICES_PK" table:
"RELEASES_PROVIDEDSERVICES"
at org.hsqldb.error.Error.error(Unknown Source)
at org.hsqldb.Constraint.getException(Unknown Source)
at org.hsqldb.index.IndexAVLMemory.insert(Unknown Source)
at org.hsqldb.persist.RowStoreAVL.indexRow(Unknown Source)
at org.hsqldb.TransactionManager2PL.addInsertAction(Unknown
Source)
at org.hsqldb.Session.addInsertAction(Unknown Source)
at org.hsqldb.Table.insertSingleRow(Unknown Source)
at org.hsqldb.StatementDML.insertSingleRow(Unknown Source)
at org.hsqldb.StatementInsert.getResult(Unknown Source)
at org.hsqldb.StatementDMQL.execute(Unknown Source)
at org.hsqldb.Session.executeCompiledStatement(Unknown Source)
at org.hsqldb.Session.execute(Unknown Source)
... 23 more
The relation Release-RequiredService is m:n. My Job class:
package ife.util;
import org.apache.isis.core.commons.authentication.AuthenticationSession;
import org.apache.isis.core.runtime.sessiontemplate.AbstractIsisSessionTemplate;
import org.apache.isis.core.runtime.system.persistence.PersistenceSession;
import ife.env.RuntimeEnvironments;
public class MasterDataUpdateCommand extends AbstractIsisSessionTemplate {
@javax.inject.Inject
private ApplicationReader applicationReader;
@javax.inject.Inject
private Properties properties;
@javax.inject.Inject
private RuntimeEnvironments runtimeEnvironments;
@Override
public void execute(AuthenticationSession authSession, Object context) {
try {
this.getIsisSessionFactory().openSession(authSession);
PersistenceSession persistenceSession =
this.getPersistenceSession();
persistenceSession.getServicesInjector().injectServicesInto(this);
properties.init(); // simple objects without relation -> OK
applicationReader.init(); // m:n relation breaks
runtimeEnvironments.init();
} finally {
this.getIsisSessionFactory().closeSession();
}
}
}
ApplicationReader is in the same package as MasterDataUpdateCommand and is
annotated with
@DomainService(nature = NatureOfService.DOMAIN)
1.16.0 and 1.15.1 behave the same.
Am I doing something wrong?
Thanks in advance
Jörg
Kühne + Nagel (AG & Co.) KG
Rechtsform: Kommanditgesellschaft, Bremen HRA 21928, USt-IdNr.: DE 812773878.
Geschäftsleitung Kühne + Nagel (AG & Co.) KG: Dr. Hansjörg Rodi (Vors. ),
Martin Brinkmann, Holger Ketz, Jan-Hendrik Köstergarten, Nicholas Minde,
Michael Nebel, Lars Wedel, Matthias Weiner.
Persönlich haftende Gesellschafterin: Kühne & Nagel A.G., Rechtsform:
Aktiengesellschaft nach luxemburgischem Recht, HR-Nr.: B 18745,
Geschäftsführendes Verwaltungsratsmitglied: Karl Gernandt.
Geschäftsleitung Region Zentral- und Osteuropa: Dr. Hansjörg Rodi (Vors.),
Dominic Edmonds, Thierry Held, Uwe Hött, Richard Huhn, Holger Ketz, Jan-Hendrik
Köstergarten, Jan Kunze, Michael Nebel, Mustafa Sener.
Wir arbeiten ausschließlich auf Grundlage der Allgemeinen Deutschen
Spediteurbedingungen 2017 (ADSp 2017). Hinweis: Die ADSp 2017 weichen in Ziffer
23 hinsichtlich des Haftungshöchstbetrages für Güterschäden (§ 431 HGB) vom
Gesetz ab, indem sie die Haftung bei multimodalen Transporten unter Einschluss
einer Seebeförderung und bei unbekanntem Schadenort auf 2 SZR/kg und im Übrigen
die Regelhaftung von 8,33 SZR/kg zusätzlich auf 1,25 Millionen Euro je
Schadenfall sowie 2,5 Millionen Euro je Schadenereignis, mindestens aber 2
SZR/kg, beschränken. Die ADSp sind auf unserer Webseite als Download
erhältlich. Auf Anfrage senden wir Ihnen diese auch gerne zu.