Tuesday, September 13, 2005

How-to delete a Product, from bugzilla

Currently bugzilla does not allow you to delete a product, all its components and bugs.

Here's a bunch of steps that you can take to manually delete a product from your bugzilla database.

I am assuming that you have the right to connect to mysql database.
# mysql bugs

1) First determine the id of your product:
select id, name from products;

Let's assume that the id of your product is 4.

2) Verify the bugs which will be deleted. Just make that it is OK to get rid of these bugs.
select bug_id, short_desc from bugs where product_id = 4;

3) Delete all bug related data:
delete from bug_group_map where bug_id in (select bug_id from bugs where product_id = 4);
delete from bugs_activity where bug_id in (select bug_id from bugs where product_id = 4);
delete from cc where bug_id in (select bug_id from bugs where product_id = 4);
delete from flags where bug_id in (select bug_id from bugs where product_id = 4);
delete from keywords where bug_id in (select bug_id from bugs where product_id = 4);
delete from longdescs where bug_id in (select bug_id from bugs where product_id = 4);
delete from votes where bug_id in (select bug_id from bugs where product_id = 4);
delete from bugs where product_id = 4;

4) Delete all product related data:
delete from components where product_id = 4;
delete from flagexclusions where product_id = 4;
delete from flaginclusions where product_id = 4;
delete from group_control_map where product_id = 4;
delete from milestones where product_id = 4;
delete from versions where product_id = 4;

TO DO:

5) Delete groups

6) Delete profile

7) delete user;

Thursday, July 21, 2005

Writing your first program in Java SOAP

Writing your first program in Java SOAP
---------------------------------------

1) Setup tomcat on your machine. This will be your app container.

2) Write HelloWorld.java (see below). This then becomes the server-side program that will serve the client requests. Compile this and put the helloworld.jar file in your
tomcat's lib directory.

3) Write HelloClient.java (see below). This is the remote client that needs to access the services of HelloWorld.java.

Now we need a router to route client request to the server-side jar helloworld.jar.

4) Download soap.war (from apache) and put it in your tomcat webapps directory. This is the router for soap requests.

PS: To confirm if it is actually installed, point your browser to /soap/admin/index.html. You should see a page which lists all deployed SOAP apps.

5) Next step is to register the HelloWorld server program with the router.
java org.apache.soap.server.ServiceManagerClient http://localhost:8180/soap/servlet/rpcrouter deploy HelloWorld.xml

(see HelloWorld.xml below).

PS: Check if the server is registered or not here:
http://localhost:8180/soap/admin/index.html

6) Run the client:
java HelloClient.java http://localhost:8180/soap/servlet/rpcrouter MyName

Enjoy!

//////////////////// HelloClient.java /////////////////////////
public class HelloClient {
public static void main (String[] args)
throws Exception {

System.out.println("\n\nCalling the SOAP Server to say hello\n\n");
System.out.println("\n\nCalling the SOAP Server to say hello\n\n");
URL url = new URL (args[0]);
String name = args[1];

Call call = new Call ( );
call.setTargetObjectURI("urn:HelloWorld");
call.setMethodName("sayHello");
call.setEncodingStyleURI(Constants.NS_URI_SOAP_ENC);
Vector params = new Vector ( );
params.addElement (new Parameter("name", String.class, name, null));
call.setParams (params);

System.out.print("The SOAP Server says: ");

Response resp = call.invoke(url, "");

if (resp.generatedFault ( )) {
Fault fault = resp.getFault ( );
System.out.println ("\nOuch, the call failed: ");
System.out.println (" Fault Code = " + fault.getFaultCode ( ));
System.out.println (" Fault String = " + fault.getFaultString ( ));
} else {
Parameter result = resp.getReturnValue ( );
System.out.print(result.getValue ( ));
System.out.println( );
}
}
}
//////////////////// HelloClient.java /////////////////////////

//////////////////// HelloWorld.java /////////////////////////
public class HelloWorld {
public String sayHello(String name) {
return "Hola " + name;
}
}
//////////////////// HelloWorld.java /////////////////////////

//////////////////// HelloWorld.xml /////////////////////////
id="urn:HelloWorld">
scope="Application"
methods="sayHello">



org.apache.soap.server.DOMFaultListener


//////////////////// HelloWorld.xml /////////////////////////

Useful links:
http://www.xml.com/pub/a/2002/01/30/soap.html
http://www.oreilly.com/catalog/progwebsoap/chapter/ch03.html
http://ws.apache.org/soap/

Wednesday, July 20, 2005

Google Moon

http://moon.google.com/

Contains NASA imagery of moon.

Monday, July 18, 2005

Installing CVS on Debian

1) As root, install the cvs package
# apt-get install cvs

- Debian typically installs cvs in /var/lib/cvs directory.
- Debian cvs root directory is owned by root and the group is "src".

2) Setting up a user:
a) Add the following lines to the .bashrc or .profile:
export CVSROOT=:ext:vineet@localhost:/var/lib/cvs/
export CVS_RSH="ssh"

b) Add the user to the group "src" by using the "usermod" command.

3) Password-less ssh login:
Copy your ssh public key from the file ~/.ssh/id_rsa.pub to ~/.ssh/authorized_keys file.

4) Create a new module, if needed, by the command:
cvs import -m "Created foochal.org" foochal.org "Foochal" "zero"

The above command will create a new module in the location:
/var/lib/cvs/foochal.org.

You can tweak the location of the above directory in the cvs by passing the option to import. For details read the CVS manual.

Tuesday, July 05, 2005

Google Earth

Friday, June 24, 2005

Collections.sort(List) usage

One common mistake that people do while using the Collection.sort() method is that they try to sort a list whose members do not implement Comparable interface.

The method internally tries to delegate the comparision logic to the object itself by first casting it to a Comparable. You have to implement this interface in order to use this sort() routine.

The other option is to pass an explicit Comparator in the other sort(List, Comparator) routine.

HTTP Status 500 - Internal Server Error




type Exception report

message Internal Server Error

description The server encountered an internal error (Internal Server Error) that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: net.vineetpriyanka.cars.Make
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:207)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:240)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:187)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:627)
at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:518)
at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:448)
at org.apache.jsp.viewMap_jsp._jspService(viewMap_jsp.java:71)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:92)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:162)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:240)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:187)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:200)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:146)
at net.vineetpriyanka.users.web.GroupSecurityFilter.doFilter(GroupSecurityFilter.java:35)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:146)
at net.vineetpriyanka.web.VPSessionFilter.doFilter(VPSessionFilter.java:50)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:146)
at net.vineetpriyanka.web.AccessLogFilter.doFilter(AccessLogFilter.java:31)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:146)
at net.vineetpriyanka.web.HibernateSessionFilter.doFilter(HibernateSessionFilter.java:27)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:146)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:209)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:144)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:445)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948)
at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2358)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:133)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:118)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:116)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:534)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:127)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948)
at org.apache.ajp.tomcat4.Ajp13Processor.process(Ajp13Processor.java:409)
at org.apache.ajp.tomcat4.Ajp13Processor.run(Ajp13Processor.java:528)
at java.lang.Thread.run(Thread.java:595)

root cause

java.lang.ClassCastException: net.vineetpriyanka.cars.Make
at java.util.Collections.sort(Collections.java:121)
at org.apache.jsp.viewPrimitiveMap_jsp._jspService(viewPrimitiveMap_jsp.java:141)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:92)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:162)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:240)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:187)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:627)
at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:518)
at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:448)
at org.apache.jsp.viewMap_jsp._jspService(viewMap_jsp.java:71)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:92)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:162)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:240)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:187)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:200)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:146)
at net.vineetpriyanka.users.web.GroupSecurityFilter.doFilter(GroupSecurityFilter.java:35)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:146)
at net.vineetpriyanka.web.VPSessionFilter.doFilter(VPSessionFilter.java:50)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:146)
at net.vineetpriyanka.web.AccessLogFilter.doFilter(AccessLogFilter.java:31)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:146)
at net.vineetpriyanka.web.HibernateSessionFilter.doFilter(HibernateSessionFilter.java:27)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:146)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:209)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:144)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:445)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948)
at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2358)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:133)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:118)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:116)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:534)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:594)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:127)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:596)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948)
at org.apache.ajp.tomcat4.Ajp13Processor.process(Ajp13Processor.java:409)
at org.apache.ajp.tomcat4.Ajp13Processor.run(Ajp13Processor.java:528)
at java.lang.Thread.run(Thread.java:595)

Apache Tomcat/4.1

Tuesday, June 14, 2005

Elevator cheat

The elevator in my office has a hidden combination. Pressing any three buttons simultaneously clears the current selection. I am not sure if this is true for all elevators, or if there are other hidden combinations that we don't know of.