continuum.mdo is used for classes and package.jdo generation
If you modify only the field length, classes will be the same. I'm not sure our package.jdo
generator support column jdbc-type defintion.
Emmanuel
Mattias Andersson a écrit :
Hi Emmanuel,
Took a quick look at the package.jdo and it only contains the length
property for the column not the actual datatyp. Isn't the SCMResult.class
(found in continuum-model.jar) generated from
http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-model/src/main/mdo/continuum.mdo
This file contains the datatypes and length for the columns. And in that
case the continuum.mdo needs to be modified and the class re-generated,
or?
/Mattias
ok, I'll try changing that when I find some spare time. And the create
table stmt should look like this and nothing else.
CREATE TABLE SCMRESULT2
(
SCMRESULT_ID BIGINT PRIMARY KEY not null,
COMMAND_LINE VARCHAR(255),
COMMAND_OUTPUT CLOB(16M),
"EXCEPTION" VARCHAR(8192),
PROVIDER_MESSAGE VARCHAR(1024),
SUCCESS CHAR(1) not null,
MODEL_ENCODING VARCHAR(255)
);
/Mattias
oh yes, you need to change package.jdo in continuum-model.jar
I don't think you need to change something else.
Emmanuel
Mattias Andersson a écrit :
Hi Emmanuel,
Is blob really appropriate for varchar type of information? You can't
copy
varchar into a blob! Shouldn't it be a clob?
Below are the SQL statments that I executed. (unfortunatly you can't
alter
the data type of the column directly). But when I started continumm it
complained that the column COMMAND_OUTPUT should be a VARCHAR and not a
CLOB.
org.jpox.store.exceptions.IncompatibleDataTypeException: Incompatible
data
type for column SCMRESULT.COMMAND_OUTPUT : was Types.CLOB, but type
expected was Types.VARCHAR. Please check that the type in the datastore
and the type specified in the MetaData are consistent.
So I guess you can't change this without changing to code. Or is the
meta
data available some where?
Regards,
Mattias
CREATE TABLE SCMRESULT2
(
SCMRESULT_ID BIGINT PRIMARY KEY not null,
COMMAND_LINE VARCHAR(255),
COMMAND_OUTPUT VARCHAR(16384),
"EXCEPTION" VARCHAR(8192),
PROVIDER_MESSAGE VARCHAR(1024),
SUCCESS CHAR(1) not null,
MODEL_ENCODING VARCHAR(255)
);
INSERT INTO SCMRESULT2
SELECT * FROM SCMRESULT;
ALTER TABLE CHANGESET DROP CONSTRAINT CHANGESET_FK1;
ALTER TABLE BUILDRESULT DROP CONSTRAINT BUILDRESULT_FK1;
ALTER TABLE BUILDRESULT DROP CONSTRAINT BUILDRESULT_FK3;
ALTER TABLE PROJECT DROP CONSTRAINT PROJECT_FK1;
ALTER TABLE PROJECT DROP CONSTRAINT PROJECT_FK4;
DROP TABLE SCMRESULT;
RENAME TABLE SCMRESULT2 TO SCMRESULT;
ALTER TABLE CHANGESET
ADD CONSTRAINT CHANGESET_FK1
FOREIGN KEY (CHANGES_SCMRESULT_ID_OID)
REFERENCES SCMRESULT(SCMRESULT_ID);
ALTER TABLE BUILDRESULT
ADD CONSTRAINT BUILDRESULT_FK1
FOREIGN KEY (SCM_RESULT_SCMRESULT_ID_VM)
REFERENCES SCMRESULT(SCMRESULT_ID);
ALTER TABLE BUILDRESULT
ADD CONSTRAINT BUILDRESULT_FK3
FOREIGN KEY (SCM_RESULT_SCMRESULT_ID_OID)
REFERENCES SCMRESULT(SCMRESULT_ID);
ALTER TABLE PROJECT
ADD CONSTRAINT PROJECT_FK1
FOREIGN KEY (CHECKOUT_RESULT_SCMRESUL2U)
REFERENCES SCMRESULT(SCMRESULT_ID);
ALTER TABLE PROJECT
ADD CONSTRAINT PROJECT_FK4
FOREIGN KEY (CHECKOUT_RESULT_SCMRESULT_ID_OID)
REFERENCES SCMRESULT(SCMRESULT_ID);
If you change it, can you send us the procedure? we'll add an entry in
faqs.
Emmanuel
Mattias Andersson a écrit :
Hi Emmanuel,
ok, I'll try to change the column. Thanks for the quick response!
Regards,
Mattias
It's a known problem thazt we'll fix in 1.1. The length of a field
(COMMAND_OUTPUT) isn't enought in
database, you can change it to a blob with a sql client like
squirrel.
Emmanuel
Mattias Andersson a écrit :
Hi,
I got some errors today in the continuum log fil that I do know how
to
solve? The appeared when I pressed the build button for a project.
It's
a
shell project, SCM is CVS and I use continumm 1.0.3. Are these
errors
known or should I add new isues? And are there any workarounds?
(the
complete stack trace is not included below to keep the mail
smaller.
They
are available if needed)
Regards,
Mattias
ERROR 1:
===========================================================================
cvs update: move away
scripts/Database/mssql/Views/dbo.DB_SubRatParamHistory_1.VIW; it is
in
the
way
31802313 [Thread-2] WARN
org.apache.maven.continuum.scm.ContinuumScm
-
Provider message: The cvs command failed.
31802391 [Thread-2] ERROR
org.apache.maven.continuum.buildcontroller.BuildController - Error
while
building project.
javax.jdo.JDODataStoreException: Insert request failed: INSERT INTO
SCMRESULT
(SCMRESULT_ID,SUCCESS,COMMAND_OUTPUT,"EXCEPTION",COMMAND_LINE,PROVIDER_MESSAGE,MODEL_ENCODING)
VALUES (?,?,?,?,?,?,?)
at
org.jpox.store.rdbms.request.InsertRequest.execute(InsertRequest.java:387)
at
org.jpox.store.rdbms.table.ClassTable.insert(ClassTable.java:2146)
at org.jpox.store.StoreManager.insert(StoreManager.java:739)
at
org.jpox.state.StateManagerImpl.internalMakePersistent(StateManagerImpl.java:3415)
at
org.jpox.state.StateManagerImpl.makePersistent(StateManagerImpl.java:3388)
at
org.jpox.AbstractPersistenceManager.internalMakePersistent(AbstractPersistenceManager.java:1146)
at
org.jpox.AbstractPersistenceManager.makePersistentInternal(AbstractPersistenceManager.java:1187)
at
org.jpox.store.mapping.PersistenceCapableMapping.setObject(PersistenceCapableMapping.java:409)
at
org.jpox.store.rdbms.fieldmanager.ParameterSetter.storeObjectField(ParameterSetter.java:132)
at
org.jpox.state.StateManagerImpl.providedObjectField(StateManagerImpl.java:2627)
...
...
ERROR 2:
===========================================================================
ERROR 22001: A truncation error was encountered trying to shrink
VARCHAR
'cvs update: move away scripts/Database/factorydata/CUSTOMER_&' to
length
1024.
at
org.apache.derby.iapi.error.StandardException.newException(Unknown
Source)
at org.apache.derby.iapi.types.SQLChar.hasNonBlankChars(Unknown
Source)
at org.apache.derby.iapi.types.SQLVarchar.normalize(Unknown
Source)
at org.apache.derby.iapi.types.SQLVarchar.normalize(Unknown
Source)
at
org.apache.derby.iapi.types.DataTypeDescriptor.normalize(Unknown
Source)
at
org.apache.derby.impl.sql.execute.NormalizeResultSet.normalizeRow(Unknown
Source)
at
org.apache.derby.impl.sql.execute.NormalizeResultSet.getNextRowCore(Unknown
Source)
at
org.apache.derby.impl.sql.execute.DMLWriteResultSet.getNextRowCore(Unknown
Source)
at org.apache.derby.impl.sql.execute.InsertResultSet.open(Unknown
Source)
at
org.apache.derby.impl.sql.GenericPreparedStatement.execute(Unknown
Source)
at
org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(Unknown
Source)
...
...
ERROR 3:
===========================================================================
javax.jdo.JDODataStoreException: Insert request failed: INSERT INTO
SCMRESULT
(SCMRESULT_ID,SUCCESS,COMMAND_OUTPUT,"EXCEPTION",COMMAND_LINE,PROVIDER_MESSAGE,MODEL_ENCODING)
VALUES (?,?,?,?,?,?,?)
at
org.jpox.store.rdbms.request.InsertRequest.execute(InsertRequest.java:387)
at
org.jpox.store.rdbms.table.ClassTable.insert(ClassTable.java:2146)
at org.jpox.store.StoreManager.insert(StoreManager.java:739)
at
org.jpox.state.StateManagerImpl.internalMakePersistent(StateManagerImpl.java:3415)
at
org.jpox.state.StateManagerImpl.makePersistent(StateManagerImpl.java:3388)
at
org.jpox.AbstractPersistenceManager.internalMakePersistent(AbstractPersistenceManager.java:1146)
at
org.jpox.AbstractPersistenceManager.makePersistentInternal(AbstractPersistenceManager.java:1187)
at
org.jpox.store.mapping.PersistenceCapableMapping.setObject(PersistenceCapableMapping.java:409)
at
org.jpox.store.rdbms.fieldmanager.ParameterSetter.storeObjectField(ParameterSetter.java:132)
at
org.jpox.state.StateManagerImpl.providedObjectField(StateManagerImpl.java:2627)
at
org.apache.maven.continuum.model.project.BuildResult.jdoProvideField(BuildResult.java)
at
org.apache.maven.continuum.model.project.BuildResult.jdoProvideFields(BuildResult.java)
...
...
ERROR 4:
===========================================================================
ERROR 22001: A truncation error was encountered trying to shrink
VARCHAR
'cvs update: move away scripts/Database/factorydata/CUSTOMER_&' to
length
1024.
at
org.apache.derby.iapi.error.StandardException.newException(Unknown
Source)
at org.apache.derby.iapi.types.SQLChar.hasNonBlankChars(Unknown
Source)
at org.apache.derby.iapi.types.SQLVarchar.normalize(Unknown
Source)
at org.apache.derby.iapi.types.SQLVarchar.normalize(Unknown
Source)
at
org.apache.derby.iapi.types.DataTypeDescriptor.normalize(Unknown
Source)
at
org.apache.derby.impl.sql.execute.NormalizeResultSet.normalizeRow(Unknown
Source)
at
org.apache.derby.impl.sql.execute.NormalizeResultSet.getNextRowCore(Unknown
Source)
at
org.apache.derby.impl.sql.execute.DMLWriteResultSet.getNextRowCore(Unknown
Source)
at org.apache.derby.impl.sql.execute.InsertResultSet.open(Unknown
Source)
at
org.apache.derby.impl.sql.GenericPreparedStatement.execute(Unknown
Source)
at
org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(Unknown
Source)
at
org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeStatement(Unknown
Source)
...
...
ERROR 5:
===========================================================================
31802563 [Thread-2] ERROR
org.codehaus.plexus.taskqueue.execution.TaskQueueExecutor:build-project
-
Error while executing task.
java.lang.NullPointerException
at
org.apache.maven.continuum.buildcontroller.DefaultBuildController.build(DefaultBuildController.java:342)
at
org.apache.maven.continuum.buildcontroller.BuildProjectTaskExecutor.executeTask(BuildProjectTaskExecutor.java:47)
at
org.codehaus.plexus.taskqueue.execution.ThreadedTaskQueueExecutor$ExecutorRunnable.run(ThreadedTaskQueueExecutor.java:103)
at java.lang.Thread.run(Thread.java:534)