Issue: Deletion of an attribute when managing issue types results in an exception.

Copyright Witness Network Support <[email protected]> Wed, 22 Oct 2008 21:27:10 +0100
Newsgroups gmane.comp.java.scarab.devel
Organization Copyright Witness
Message-ID <[email protected]>
Hi Folks,

Because I cannot register on the tracker here is one of our issues...Ive
cut&paste from our own internal scarab.

Issue ID 	*TPSW4 (Defect)*
	Created by 	Barry Pearce <mailto:[email protected]> -
04-Oct-2008 22:13:55 GMT 	Last modified by 	Barry Pearce
<mailto:[email protected]> - 20-Oct-2008 12:01:24 GMT


        Basic Info

Component/Product 	Scarab
Component/Product Version 	Subversion trunk 10627
Summary 	Deletion of an attribute when managing issue types results in
an exception.


        Situation

Description 	

When deleting an attribute from a an attribute group an exception occurs. (See first comment below).
Thereafter going back into the attribute group produces the second exception:

Caused by: java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
	at java.util.ArrayList.RangeCheck(ArrayList.java:547)
	at java.util.ArrayList.get(ArrayList.java:322)
	at org.tigris.scarab.om.AttributeGroup.getRAttributeAttributeGroup(AttributeGroup.java:281)
	at sun.reflect.GeneratedMethodAccessor735.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.invoke(UberspectImpl.java:267)
	at org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:197)
	at org.apache.velocity.runtime.parser.node.ASTReference.execute(ASTReference.java:175)
	at org.apache.velocity.runtime.parser.node.ASTReference.value(ASTReference.java:327)
	at org.apache.velocity.runtime.parser.node.ASTExpression.value(ASTExpression.java:51)
	at org.apache.velocity.runtime.parser.node.ASTSetDirective.render(ASTSetDirective.java:95)
	at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:55)
	at org.apache.velocity.runtime.directive.Foreach.render(Foreach.java:166)
	at org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.java:114)
	at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:55)
	at org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:70)
	at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:55)
	at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:230)
	at org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:89)
	at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:230)
	at org.apache.velocity.Template.merge(Template.java:256)
	at org.apache.velocity.app.VelocityEngine.mergeTemplate(VelocityEngine.java:450)
	at org.apache.velocity.app.VelocityEngine.mergeTemplate(VelocityEngine.java:419)
	at org.apache.fulcrum.velocity.TurbineVelocityService.handleRequest(TurbineVelocityService.java:317)
	... 100 more


The attribute appears to be 'semi' deleted - as it appears in the list of attributes available to add for additional attribute groups.

Status 	Assigned
On Hold 	No
Severity 	7 - Major
Occurance Likelihood 	10 - Constantly
Priority 	Medium
Further Info Required? 	No
FunctionalArea 	UserInterface
Platform 	PC
Processor 	AMD Athlon XP2600+
OperatingSystem 	Ubuntu Server
Operating System Version 	Hardy Heron 8.04.1
Runtime Environment 	JBoss AS 4.2.3GA
Java Version 	J2SE 6.0


        Actions

Work-Around 	

Delete the attribute. Go to another attribute group (create a new one if necessary). Add the attribute. This generally works but sometimes time is required to clear the cache. If a new group was created it can be deleted without problems.



        Comments


        Barry Pearce <mailto:[email protected]> -
        20-Oct-2008 11:41:39 GMT

Stack Trace

If the stack trace below has at the top a mention 
of "ResourceNotFoundException", that means that a template could not be 
found (404) and is probably the result of a broken link.

If the stack trace has something else, please enter a copy of the stack 
trace and an explanation of what you did to cause it to the 
Issue Tracking System for analysis. 
If you are a developer and think you know what the problem is, 
feel free to send in a patch to fix the problem.  

  org.apache.turbine.TurbineException: org.apache.torque.TorqueException: java.sql.SQLException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 1
	at org.apache.turbine.pipeline.DefaultActionValve.invoke(DefaultActionValve.java:104)
	at org.apache.turbine.pipeline.TurbinePipeline.invokeNext(TurbinePipeline.java:231)
	at org.apache.turbine.pipeline.DefaultACLCreationValve.invoke(DefaultACLCreationValve.java:127)
	at org.apache.turbine.pipeline.TurbinePipeline.invokeNext(TurbinePipeline.java:231)
	at org.tigris.scarab.pipeline.SetLocaleValve.invoke(SetLocaleValve.java:112)
	at org.apache.turbine.pipeline.TurbinePipeline.invokeNext(TurbinePipeline.java:231)
	at org.tigris.scarab.pipeline.FreshenUserValve.invoke(FreshenUserValve.java:189)
	at org.apache.turbine.pipeline.TurbinePipeline.invokeNext(TurbinePipeline.java:231)
	at org.apache.turbine.pipeline.DefaultSessionValidationValve.invoke(DefaultSessionValidationValve.java:131)
	at org.apache.turbine.pipeline.TurbinePipeline.invokeNext(TurbinePipeline.java:231)
	at org.apache.turbine.pipeline.DefaultLoginValve.invoke(DefaultLoginValve.java:109)
	at org.apache.turbine.pipeline.TurbinePipeline.invokeNext(TurbinePipeline.java:231)
	at org.tigris.scarab.pipeline.AnonymousLoginValve.invoke(AnonymousLoginValve.java:62)
	at org.apache.turbine.pipeline.TurbinePipeline.invokeNext(TurbinePipeline.java:231)
	at org.tigris.scarab.pipeline.NTLMLoginValve.invoke(NTLMLoginValve.java:78)
	at org.apache.turbine.pipeline.TurbinePipeline.invokeNext(TurbinePipeline.java:231)
	at org.apache.turbine.pipeline.DefaultSessionTimeoutValve.invoke(DefaultSessionTimeoutValve.java:121)
	at org.apache.turbine.pipeline.TurbinePipeline.invokeNext(TurbinePipeline.java:231)
	at org.tigris.scarab.pipeline.DetermineTargetValve.invoke(DetermineTargetValve.java:138)
	at org.apache.turbine.pipeline.TurbinePipeline.invokeNext(TurbinePipeline.java:231)
	at org.apache.turbine.pipeline.DetermineActionValve.invoke(DetermineActionValve.java:107)
	at org.apache.turbine.pipeline.TurbinePipeline.invokeNext(TurbinePipeline.java:231)
	at org.tigris.scarab.pipeline.SetInfoMessageValve.invoke(SetInfoMessageValve.java:85)
	at org.apache.turbine.pipeline.TurbinePipeline.invokeNext(TurbinePipeline.java:231)
	at org.tigris.scarab.pipeline.ResetCacheValve.invoke(ResetCacheValve.java:77)
	at org.apache.turbine.pipeline.TurbinePipeline.invokeNext(TurbinePipeline.java:231)
	at org.tigris.scarab.pipeline.DetermineCharsetValve.invoke(DetermineCharsetValve.java:103)
	at org.apache.turbine.pipeline.TurbinePipeline.invokeNext(TurbinePipeline.java:231)
	at org.tigris.scarab.pipeline.TimingInfoValve.invoke(TimingInfoValve.java:131)
	at org.apache.turbine.pipeline.TurbinePipeline.invokeNext(TurbinePipeline.java:231)
	at org.apache.turbine.pipeline.TurbinePipeline.invoke(TurbinePipeline.java:213)
	at org.apache.turbine.Turbine.doGet(Turbine.java:298)
	at org.apache.turbine.Turbine.doPost(Turbine.java:343)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
	at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:182)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:432)
	at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262)
	at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:437)
	at org.apache.coyote.ajp.AjpProtocol$AjpConnectionHandler.process(AjpProtocol.java:366)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446)
	at java.lang.Thread.run(Thread.java:619)
Caused by: org.apache.torque.TorqueException: java.sql.SQLException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 1
	at org.apache.torque.util.BasePeer.throwTorqueException(BasePeer.java:105)
	at org.apache.torque.util.BasePeer.executeQuery(BasePeer.java:896)
	at org.apache.torque.util.BasePeer.doSelect(BasePeer.java:734)
	at org.apache.torque.util.BasePeer.doSelect(BasePeer.java:707)
	at org.tigris.scarab.om.BaseRModuleOptionPeer.doSelectVillageRecords(BaseRModuleOptionPeer.java:397)
	at org.tigris.scarab.om.BaseRModuleOptionPeer.doSelectVillageRecords(BaseRModuleOptionPeer.java:369)
	at org.tigris.scarab.om.BaseRModuleOptionPeer.doSelect(BaseRModuleOptionPeer.java:338)
	at org.tigris.scarab.om.RModuleOption.delete(RModuleOption.java:271)
	at org.tigris.scarab.om.AttributeGroup.deleteAttribute(AttributeGroup.java:638)
	at org.tigris.scarab.actions.admin.AttributeGroupEdit.doDeleteattributes(AttributeGroupEdit.java:472)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.apache.turbine.modules.actions.TemplateAction.executeEvents(TemplateAction.java:160)
	at org.apache.turbine.modules.ActionEvent.perform(ActionEvent.java:144)
	at org.apache.turbine.modules.actions.TemplateSecureAction.perform(TemplateSecureAction.java:90)
	at org.apache.turbine.modules.ActionEvent.execute(ActionEvent.java:179)
	at org.apache.turbine.pipeline.DefaultActionValve.executeAction(DefaultActionValve.java:139)
	at org.apache.turbine.pipeline.DefaultActionValve.invoke(DefaultActionValve.java:99)
	... 53 more
Caused by: java.sql.SQLException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 1
	at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2975)
	at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1600)
	at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1695)
	at com.mysql.jdbc.Connection.execSQL(Connection.java:3020)
	at com.mysql.jdbc.Connection.execSQL(Connection.java:2949)
	at com.mysql.jdbc.Statement.executeQuery(Statement.java:959)
	at com.workingdogs.village.QueryDataSet.<init>(QueryDataSet.java:113)
	at org.apache.torque.util.BasePeer.executeQuery(BasePeer.java:881)
	... 71 more


-- 
Sincerely Yours

Copyright Witness Net Support
[email protected]

www.copyrightwitness.com
Registration centre for copyright works.

This e-mail and any attachments are confidential and intended for the addressee only.
The information in this mail does not amount to legal advice or opinion. Any views or legal references are those of the author and are based on personal opinion or understanding only.