[Anthill-pro] Archiving a build life in 3.4.9 issue
Anderson, Eric
Eric.Anderson at agedwards.com
Thu Feb 28 16:24:45 CST 2008
The NAME column in WORKFLOW_DEFINITION is set in the mysql schema are
set to not allow NULL, but a name is not being set when an archive job
is created.
mysql> desc WORKFLOW_DEFINITION;
+---------------------+---------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------------------+---------------+------+-----+---------+-------+
| ID | bigint(20) | NO | PRI | | |
| VERSION | decimal(10,0) | NO | | 0 | |
| NAME | varchar(64) | NO | | | |
| DESCRIPTION | varchar(255) | YES | | NULL | |
| IS_LIBRARY | decimal(10,0) | NO | | 0 | |
| LIFE_CYCLE_MODEL_ID | bigint(20) | YES | MUL | NULL | |
| SOURCE_CONFIG_TYPE | varchar(255) | YES | | NULL | |
| FOLDER_ID | bigint(20) | YES | MUL | NULL | |
+---------------------+---------------+------+-----+---------+-------+
8 rows in set (0.05 sec)
This results in a following exception being shown to the user when the
"archive" button is clicked for a build life. I think however, that
this is a symptom of the fact that the GenericJobConfig was already
created, but it tries to create it again since the WorkflowDefinition is
not found to exist.
IllegalStateException:
com.urbancode.anthill3.domain.jobconfig.generic.GenericJobConfig:
Persistent IDs cannot be changed once set
More Info
java.lang.IllegalStateException:
com.urbancode.anthill3.domain.jobconfig.generic.GenericJobConfig:
Persistent IDs cannot be changed once set
at
com.urbancode.anthill3.domain.persistent.AbstractPersistent.setId(Abstra
ctPersistent.java:91)
at
com.urbancode.anthill3.domain.persistent.HiLoIdentityGenerator.assignIde
ntity(HiLoIdentityGenerator.java:62)
at
com.urbancode.anthill3.persistence.UnitOfWorkDefault.commit0(UnitOfWorkD
efault.java:127)
at
com.urbancode.anthill3.persistence.UnitOfWork.commit(UnitOfWork.java:700
)
at
com.urbancode.anthill3.web.controller.ControllerServlet.doPost(Controlle
rServlet.java:326)
at
com.urbancode.anthill3.web.controller.ControllerServlet.doGet(Controller
Servlet.java:160)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica
tionFilterChain.java:269)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt
erChain.java:188)
at
com.urbancode.anthill3.web.util.LicenseFilter.doFilter(LicenseFilter.jav
a:78)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica
tionFilterChain.java:215)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt
erChain.java:188)
at
com.urbancode.anthill3.web.util.SecurityFilter.doFilter(SecurityFilter.j
ava:132)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica
tionFilterChain.java:215)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt
erChain.java:188)
at
com.urbancode.anthill3.web.util.AuthorityFilter.doFilter(AuthorityFilter
.java:67)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica
tionFilterChain.java:215)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt
erChain.java:188)
at
com.urbancode.anthill3.web.security.DisableSessionUrlFilter.doFilter(Dis
ableSessionUrlFilter.java:114)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica
tionFilterChain.java:215)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt
erChain.java:188)
at
com.urbancode.anthill3.web.security.SecureSessionFilter.doFilter(SecureS
essionFilter.java:114)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica
tionFilterChain.java:215)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt
erChain.java:188)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValv
e.java:213)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValv
e.java:174)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java
:127)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java
:117)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.
java:108)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:1
51)
at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:87
4)
at
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.proc
essConnection(Http11BaseProtocol.java:665)
at
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint
.java:528)
at
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollow
erWorkerThread.java:81)
at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool
.java:689)
at java.lang.Thread.run(Thread.java:595)
For example, if I try to archive five times, I get five different job
configs.
mysql> SELECT NAME, DESCRIPTION, PROJECT_ID FROM JOB_CONFIG WHERE
PROJECT_ID = 252 AND NAME = 'Archive Job Config';
+--------------------+--------------------------------------------------
----+------------+
| NAME | DESCRIPTION
| PROJECT_ID |
+--------------------+--------------------------------------------------
----+------------+
| Archive Job Config | Anthill3 internally created Job Config for
archiving | 252 |
| Archive Job Config | Anthill3 internally created Job Config for
archiving | 252 |
| Archive Job Config | Anthill3 internally created Job Config for
archiving | 252 |
| Archive Job Config | Anthill3 internally created Job Config for
archiving | 252 |
| Archive Job Config | Anthill3 internally created Job Config for
archiving | 252 |
+--------------------+--------------------------------------------------
----+------------+
5 rows in set (0.00 sec)
The server log reveals the following cause (mysql tracing enabled):
/* conn id 0 */ PREPARE debug_stmt_33535 FROM "
INSERT INTO WORKFLOW_DEFINITION (
ID,
VERSION,
NAME,
DESCRIPTION,
LIFE_CYCLE_MODEL_ID,
SOURCE_CONFIG_TYPE,
IS_LIBRARY,
FOLDER_ID
) VALUES (
?, ?, ?, ?,
?, ?, ?, ?
)
";
/* conn id 0 */ SET @debug_stmt_param33535_0=1025;
/* conn id 0 */ SET @debug_stmt_param33535_1=0;
/* conn id 0 */ SET @debug_stmt_param33535_2=NULL;
/* conn id 0 */ SET @debug_stmt_param33535_3=NULL;
/* conn id 0 */ SET @debug_stmt_param33535_4=6;
/* conn id 0 */ SET
@debug_stmt_param33535_5='com.urbancode.anthill3.domain.sour
ce.cvs.CvsSourceConfig';
/* conn id 0 */ SET @debug_stmt_param33535_6=0;
/* conn id 0 */ SET @debug_stmt_param33535_7=NULL;
/* conn id 0 */ EXECUTE debug_stmt_33535 USING @debug_stmt_param33535_0,
@debug_
stmt_param33535_1, @debug_stmt_param33535_2, @debug_stmt_param33535_3,
@debug_st
mt_param33535_4, @debug_stmt_param33535_5, @debug_stmt_param33535_6,
@debug_stmt
_param33535_7;
2008-02-28 17:00:41,843 ERROR http-0.0.0.0-7337-Processor14
com.urbancode.anthil
l3.domain.workflow.WorkflowDefinitionDaoSql - Error storing
WorkflowDefinition i
n database: Column 'NAME' cannot be null
java.sql.SQLException: Column 'NAME' cannot be null
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2975)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1600)
at
com.mysql.jdbc.ServerPreparedStatement.serverExecute(ServerPreparedSt
atement.java:1129)
at
com.mysql.jdbc.ServerPreparedStatement.executeInternal(ServerPrepared
Statement.java:681)
at
com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java
:1368)
Thanks!
Eric P. Anderson
Development Frameworks Team
A.G. Edwards & Sons, Inc. a division of Wachovia Securities, LLC.
314-955-0060
A.G. Edwards outgoing and incoming e-mails are electronically
archived and subject to review and/or disclosure to someone other
than the recipient.
A.G. Edwards is a division of Wachovia Securities, LLC.
More information about the Anthill-pro
mailing list