<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-7419916</id><updated>2012-01-21T16:59:46.335+05:30</updated><category term='SCWCD'/><category term='UIX'/><category term='Broadband'/><category term='Java EE'/><category term='Encoding'/><category term='Flats'/><category term='SCJP 5.0'/><category term='Others'/><category term='Internet Explorer'/><category term='Oracle'/><category term='Microsoft IIS'/><category term='OC4J'/><category term='ADF'/><title type='text'>KrishnaMoorthy's Blog</title><subtitle type='html'>Blog on Java and Oracle Technologies</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://krsethur.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://krsethur.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>S. Krishnamoorthy</name><uri>http://www.blogger.com/profile/01839756663272614286</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>91</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7419916.post-418812482739161935</id><published>2007-04-28T19:37:00.000+05:30</published><updated>2007-04-28T19:41:42.797+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Broadband'/><title type='text'>Renewing the dynamic IP from ISP</title><content type='html'>Got this error for broadband connection from reliance : "Connection has limited connectivity or no connection" when starting up the system. To solve this problem we need to release the existing IP and get a new IP. To do the same,&lt;br /&gt;1. execute from cmd prompt : ipconfig/release&lt;br /&gt;2. then, ipconfig/renew (no space between ipconfig and renew).&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8982674345885868";
google_ad_width = 728;
google_ad_height = 15;
google_ad_format = "728x15_0ads_al";
google_ad_channel = "";
google_color_border = "336699";
google_color_bg = "FFFFFF";
google_color_link = "0000FF";
google_color_text = "000000";
google_color_url = "008000";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7419916-418812482739161935?l=krsethur.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krsethur.blogspot.com/feeds/418812482739161935/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7419916&amp;postID=418812482739161935' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/418812482739161935'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/418812482739161935'/><link rel='alternate' type='text/html' href='http://krsethur.blogspot.com/2007/04/renewing-dynamic-ip-from-isp.html' title='Renewing the dynamic IP from ISP'/><author><name>S. Krishnamoorthy</name><uri>http://www.blogger.com/profile/01839756663272614286</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7419916.post-2378418453430562768</id><published>2006-12-28T10:22:00.000+05:30</published><updated>2007-04-24T11:46:23.740+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java EE'/><title type='text'>EJB Lookup</title><content type='html'>1. When deploying EJB, it has a name(if specified using annotation : @Stateless(name="SessionEJB") or if descriptor: &amp;lt;ejb-name&amp;gt;SessionEJB&amp;lt;/ejb-name&amp;gt;.&lt;br /&gt;&lt;br /&gt;2. This EJB deployed to OC4J. Now to do a lookup for this EJB, we can use either ApplicationClientInitialContextFactory or RMIInitialContextFactory.&lt;br /&gt;&lt;br /&gt;3. In case of RMIInitialContextFactory, no need of application-client.xml and the context lookup will be : new InitialContext.lookup("SessionEJB").&lt;br /&gt;&lt;br /&gt;4. In case of ApplicationClientInitialContextFactory, we need application-client.xml. It has to introduce the ejb refrence going to be used in code as:&lt;br /&gt;&lt;br /&gt;&amp;lt;application-client xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/application-client_1_4.xsd" version="1.4" xmlns="http://java.sun.com/xml/ns/j2ee"&amp;gt;&lt;br /&gt;&amp;lt;display-name&amp;gt;InterceptorTest-app-client&amp;lt;/display-name&amp;gt;&lt;br /&gt;&amp;lt;ejb-ref&amp;gt;&lt;br /&gt;&amp;lt;ejb-ref-name&amp;gt;ejb/SessionEJB&amp;lt;/ejb-ref-name&amp;gt;&lt;br /&gt;&amp;lt;ejb-ref-type&amp;gt;Session&amp;lt;/ejb-ref-type&amp;gt;&lt;br /&gt;&amp;lt;remote&amp;gt;myEJB.SessionEJB&amp;lt;/remote&amp;gt;&lt;br /&gt;&amp;lt;ejb-link&amp;gt;SessionEJB&amp;lt;/ejb-link&amp;gt;&lt;br /&gt;&amp;lt;/ejb-ref&amp;gt;&lt;br /&gt;&amp;lt;/application-client&amp;gt;&lt;br /&gt;&lt;br /&gt;5. Here, ejb-link is used to link to the  actual bean. Now, in the client code we use the  ejb-ref-name for lookup as:&lt;br /&gt;&lt;br /&gt;new InitialContext().lookup("java:comp/env/ejb/SessionEJB");&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8982674345885868";
google_ad_width = 728;
google_ad_height = 15;
google_ad_format = "728x15_0ads_al";
google_ad_channel = "";
google_color_border = "336699";
google_color_bg = "FFFFFF";
google_color_link = "0000FF";
google_color_text = "000000";
google_color_url = "008000";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7419916-2378418453430562768?l=krsethur.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krsethur.blogspot.com/feeds/2378418453430562768/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7419916&amp;postID=2378418453430562768' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/2378418453430562768'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/2378418453430562768'/><link rel='alternate' type='text/html' href='http://krsethur.blogspot.com/2006/12/ejb-lookup.html' title='EJB Lookup'/><author><name>S. Krishnamoorthy</name><uri>http://www.blogger.com/profile/01839756663272614286</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7419916.post-4121439017484808466</id><published>2006-12-24T10:16:00.000+05:30</published><updated>2007-04-24T11:48:01.146+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='OC4J'/><category scheme='http://www.blogger.com/atom/ns#' term='Java EE'/><title type='text'>MDB deployment in OC4J</title><content type='html'>1. Create the MDB(normal java class with @MessageDriven annotation). Set the ActivationConfigs.&lt;br /&gt;&lt;br /&gt;@MessageDriven(&lt;br /&gt;activationConfig = {&lt;br /&gt;@ActivationConfigProperty(propertyName="connectionFactoryJndiName", propertyValue="jms/TopicConnectionFactory"),&lt;br /&gt;@ActivationConfigProperty(propertyName="destinationName",&lt;br /&gt;propertyValue="jms/demoTopic"),&lt;br /&gt;@ActivationConfigProperty(propertyName="destinationType", propertyValue="javax.jms.Topic"),&lt;br /&gt;@ActivationConfigProperty(propertyName="messageSelector", propertyValue="RECIPIENT = 'MDB'") } )&lt;br /&gt;&lt;br /&gt;2. Create EJB jar deployment profile(MDBServer.deploy) for the above MDB and deploy it to OC4J server(application name = MDBServer)&lt;br /&gt;&lt;br /&gt;3. In same project, create the MDBClient. Inject the resources @Resource(name="jms/demoQueue") and @Resource(name="jms/TopicConnectionFactory"). Use connectionFactory and create connection, then session, message and send the message using producer.&lt;br /&gt;&lt;br /&gt;4. In Jdeveloper create jndi.properties file with:&lt;br /&gt;&lt;br /&gt;java.naming.factory.initial= oracle.j2ee.naming.ApplicationClientInitialContextFactory&lt;br /&gt;java.naming.provider.url=ormi://localhost:23791/MDBServer&lt;br /&gt;java.naming.security.principal=oc4jadmin&lt;br /&gt;java.naming.security.credentials=welcome&lt;br /&gt;&lt;br /&gt;5. Create client Jar deployment profile from Jdeveloper. This creates application-client.xml. Modify application-client.xml and add following lines for the resource reference entries(Make sure to mention the main class file name in descriptor creation)&lt;br /&gt;&lt;br /&gt;&amp;lt;application-client xmlns:xsi="&lt;a href="http://www.w3.org/2001/XMLSchema-instance"&gt;http://www.w3.org/2001/XMLSchema-instance&lt;/a&gt;" xsi:schemaLocation="&lt;a href="http://java.sun.com/xml/ns/j2ee"&gt;http://java.sun.com/xml/ns/j2ee&lt;/a&gt; &lt;a href="http://java.sun.com/xml/ns/j2ee/application-client_1_4.xsd"&gt;http://java.sun.com/xml/ns/j2ee/application-client_1_4.xsd&lt;/a&gt;" version="1.4" xmlns="&lt;a href="http://java.sun.com/xml/ns/j2ee"&gt;http://java.sun.com/xml/ns/j2ee&lt;/a&gt;"&amp;gt;&lt;br /&gt;&amp;lt;display-name&amp;gt;MDB1-app-client&amp;lt;/display-name&amp;gt;&lt;br /&gt;&amp;lt;resource-env-ref&amp;gt;&lt;br /&gt;&amp;lt;resource-env-ref-name&amp;gt;jms/demoTopic&amp;lt;/resource-env-ref-name&amp;gt;&lt;br /&gt;&amp;lt;resource-env-ref-type&amp;gt;javax.jms.Topic&amp;lt;/resource-env-ref-type&amp;gt;&lt;br /&gt;&amp;lt;/resource-env-ref&amp;gt;&lt;br /&gt;&amp;lt;resource-env-ref&amp;gt;&lt;br /&gt;&amp;lt;resource-env-ref-name&amp;gt;jms/TopicConnectionFactory &amp;lt;/resource-env-ref-name&amp;gt;&lt;br /&gt;&amp;lt;resource-env-ref-type&amp;gt;javax.jms.TopicConnectionFactory &amp;lt;/resource-env-ref-type&amp;gt;&lt;br /&gt;&amp;lt;/resource-env-ref&amp;gt;&lt;br /&gt;&amp;lt;/application-client&amp;gt;&lt;br /&gt;&lt;br /&gt;6. Deploy the deployment profile MDBClient.deploy to MDBClient.jar.&lt;br /&gt;&lt;br /&gt;7. From command prompt containing the jar file, set class path and run :&lt;br /&gt;&lt;br /&gt;D:\installs\JdevStudio10131\jdev\mywork\MDB\MDB1\deploy&amp;gt;set CLASSPATH =.\;D:\installs\oc4j\j2ee\home\oc4jclient.jar;D:\installs\oc4j\j2ee\home\lib\javax77.jar;&lt;br /&gt;&lt;br /&gt;D:\installs\JdevStudio10131\jdev\mywork\MDB\MDB1\deploy&amp;gt;java oracle.oc4j.appclient.AppClientContainer MDBClient.jar&lt;br /&gt;&lt;br /&gt;Output from the application server log will contain:&lt;br /&gt;&lt;br /&gt;06/12/24 20:26:44 onMessage() - Message[ID:Oc4jJMS.Message.krishnamoorthy.64e0c3&lt;br /&gt;ab:10fb4f6b670:-8000.4]&lt;br /&gt;&lt;br /&gt;onMessage method of the MDB just does a system.out.println(message)&lt;br /&gt;&lt;br /&gt;Note: Without creating jar of client files and if I directly run using:&lt;br /&gt;&lt;br /&gt;D:\installs\JdevStudio10131\jdev\mywork\MDB\MDB1\classes&amp;gt;java  -Djava.naming.factory.initial=oracle.j2ee.naming.ApplicationClientInitialContextFactory -Djava.naming.provider.url=ormi://localhost:23791/MDBServer -Djava.naming.security.principal=oc4jadmin -Djava.naming.security.credentials=welcome myJMSClient.TestJMSClient&lt;br /&gt;&lt;br /&gt;I get&lt;br /&gt;&lt;br /&gt;Exception in thread "main" java.lang.NullPointerException&lt;br /&gt;at myJMSClient.TestJMSClient.main(TestJMSClient.java:22)&lt;br /&gt;&lt;br /&gt;So, should a JMS client be run always using AppClientContainer as :&lt;br /&gt;&lt;br /&gt;java oracle.oc4j.appclient.AppClientContainer MDBClient.jar&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8982674345885868";
google_ad_width = 728;
google_ad_height = 15;
google_ad_format = "728x15_0ads_al";
google_ad_channel = "";
google_color_border = "336699";
google_color_bg = "FFFFFF";
google_color_link = "0000FF";
google_color_text = "000000";
google_color_url = "008000";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7419916-4121439017484808466?l=krsethur.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krsethur.blogspot.com/feeds/4121439017484808466/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7419916&amp;postID=4121439017484808466' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/4121439017484808466'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/4121439017484808466'/><link rel='alternate' type='text/html' href='http://krsethur.blogspot.com/2006/12/mdb-deployment-in-oc4j.html' title='MDB deployment in OC4J'/><author><name>S. Krishnamoorthy</name><uri>http://www.blogger.com/profile/01839756663272614286</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7419916.post-532432395406132330</id><published>2006-12-22T10:16:00.000+05:30</published><updated>2007-04-24T11:46:23.741+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java EE'/><title type='text'>Running EJB Client Standalone</title><content type='html'>&lt;strong&gt;HelloWorld.java&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;package myEJB;&lt;br /&gt;&lt;br /&gt;import javax.ejb.Remote;&lt;br /&gt;&lt;br /&gt;@Remote&lt;br /&gt;public interface HelloWorld {&lt;br /&gt;public String sayHello(String name);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;HelloWorldBean.java&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;package myEJB;&lt;br /&gt;&lt;br /&gt;import javax.ejb.Stateless;&lt;br /&gt;&lt;br /&gt;@Stateless&lt;br /&gt;public class HelloWorldBean implements HelloWorld {&lt;br /&gt;private int count;&lt;br /&gt;&lt;br /&gt;public String sayHello(String name) {&lt;br /&gt;count++;&lt;br /&gt;System.out.println("sayHello method from Bean ");&lt;br /&gt;return "Hello " + name + " Count  : " + count;&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Compile the classes and run in embedded oc4j of jdeveloper. Or create a ejb jar deployment profile and deploy it to standalone oc4j server. Deployment name is the application name in the standalone oc4j. Let us say application is HelloWorldDeploy. Ear file contains jar file and META-INF. Inside META-INF is the application.xml containing the name of ejb module jar file. Jar file contains the interface and bean classes.  After deploying, create a test client as follows:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;HelloWorldClient.java&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;package myEJB;&lt;br /&gt;&lt;br /&gt;import java.util.Hashtable;&lt;br /&gt;&lt;br /&gt;import javax.naming.Context;&lt;br /&gt;import javax.naming.InitialContext;&lt;br /&gt;import javax.naming.NamingException;&lt;br /&gt;&lt;br /&gt;public class HelloWorldClient {&lt;br /&gt;public static void main(String [] args) {&lt;br /&gt;try {&lt;br /&gt;final Context context = new InitialContext();&lt;br /&gt;HelloWorld helloWorld = (HelloWorld)context.lookup("java:comp/env/ejb/HelloWorldBean");&lt;br /&gt;// Call any of the Remote methods below to access the EJB&lt;br /&gt;System.out.println(helloWorld.sayHello( "Krishna" ));&lt;br /&gt;} catch (Exception ex) {&lt;br /&gt;ex.printStackTrace();&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;To invoke ejb method from command line:&lt;br /&gt;&lt;br /&gt;D:\work\MyWork\ejb\ejb3&amp;gt;set CLASSPATH=D:\installs\JdevStudio10131\j2ee\home\oc4jclient.jar;.\;&lt;br /&gt;&lt;br /&gt;D:\work\MyWork\ejb\ejb3&amp;gt;java -Djava.naming.factory.initial=oracle.j2ee.naming.Ap&lt;br /&gt;plicationClientInitialContextFactory -Djava.naming.provider.url=ormi://localhost&lt;br /&gt;:23791/HelloWorldDeploy -Djava.naming.security.principal=oc4jadmin -Djava.naming&lt;br /&gt;.security.credentials=welcome myEJB.HelloWorldClient&lt;br /&gt;&lt;br /&gt;Output is : Hello Krishna Count  : 1&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8982674345885868";
google_ad_width = 728;
google_ad_height = 15;
google_ad_format = "728x15_0ads_al";
google_ad_channel = "";
google_color_border = "336699";
google_color_bg = "FFFFFF";
google_color_link = "0000FF";
google_color_text = "000000";
google_color_url = "008000";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7419916-532432395406132330?l=krsethur.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krsethur.blogspot.com/feeds/532432395406132330/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7419916&amp;postID=532432395406132330' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/532432395406132330'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/532432395406132330'/><link rel='alternate' type='text/html' href='http://krsethur.blogspot.com/2007/12/running-ejb-client-standalone.html' title='Running EJB Client Standalone'/><author><name>S. Krishnamoorthy</name><uri>http://www.blogger.com/profile/01839756663272614286</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7419916.post-7838936902014437447</id><published>2006-12-21T10:10:00.000+05:30</published><updated>2007-04-24T11:47:43.875+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><category scheme='http://www.blogger.com/atom/ns#' term='Java EE'/><title type='text'>Transaction Isolation Level</title><content type='html'>Good link for getting a refresh on the isolation level: &lt;a href="http://www.oracle.com/technology/oramag/oracle/05-nov/o65asktom.html"&gt;http://www.oracle.com/technology/oramag/oracle/05-nov/o65asktom.html&lt;/a&gt;&lt;br /&gt;Oracle supports READ COMMITTED and SERIALIZABLE. Oracle doesn't allow dirty reads(READ UNCOMMITTED). It allows a third isolation level which is READ ONLY. No insert, update, delete can be done in this mode.&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8982674345885868";
google_ad_width = 728;
google_ad_height = 15;
google_ad_format = "728x15_0ads_al";
google_ad_channel = "";
google_color_border = "336699";
google_color_bg = "FFFFFF";
google_color_link = "0000FF";
google_color_text = "000000";
google_color_url = "008000";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7419916-7838936902014437447?l=krsethur.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krsethur.blogspot.com/feeds/7838936902014437447/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7419916&amp;postID=7838936902014437447' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/7838936902014437447'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/7838936902014437447'/><link rel='alternate' type='text/html' href='http://krsethur.blogspot.com/2006/12/transaction-isolation-level.html' title='Transaction Isolation Level'/><author><name>S. Krishnamoorthy</name><uri>http://www.blogger.com/profile/01839756663272614286</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7419916.post-4514758433558371631</id><published>2006-12-20T10:10:00.000+05:30</published><updated>2007-04-24T11:46:23.742+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java EE'/><title type='text'>RMI tutorial on SUN</title><content type='html'>1. Start the rmiregistry at the default port 1099. (rmiregistry.exe)&lt;br /&gt;&lt;br /&gt;2. Start the Local Http server for delivering class files between server-RMI and RMI-Client.&lt;br /&gt;&lt;br /&gt;D:\work\MyWork\rmi\suntutorial&amp;gt;java examples.classServer.ClassFileServer 1185  D:\work\MyWork\rmi\suntutorial&lt;br /&gt;&lt;br /&gt;3. Then start the ComputeEngine server using :&lt;br /&gt;&lt;br /&gt;D:\work\MyWork\rmi\suntutorial&amp;gt;java -cp .\;compute.jar -Djava.rmi.server.codebase=http://pc-krsethur-in:1185/ -Djava.rmi.server.hostname=pc-krsethur-in -Djava.security.policy=D:\work\MyWork\rmi\suntutorial\server.policy engine.ComputeEngine&lt;br /&gt;&lt;br /&gt;4. Remove the client files from the suntutorial folder and place it in a folder named test under this suntutorial so that RMI will get the files using http from the client(thus, the above classpath doesn't include the client classes).&lt;br /&gt;&lt;br /&gt;5. server.policy should have the line&lt;br /&gt;&lt;br /&gt;grant  {&lt;br /&gt;    permission java.net.SocketPermission "*:*", "listen,accept,connect";&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;for the binding of remote object to the registry(1099).&lt;br /&gt;&lt;br /&gt;6. Now run the client as&lt;br /&gt;&lt;br /&gt;D:\work\MyWork\rmi\suntutorial\test&amp;gt;java -cp .\;..\compute.jar; -Djava.rmi.server.codebase=http://pc-krsethur-in:1185/test/ -Djava.security.policy=D:\work\MyWork\rmi\suntutorial\client.policy client.ComputePi pc-krsethur-in 45&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Output&lt;/strong&gt;&lt;br /&gt;3.141592653589793238462643383279502884197169399&lt;br /&gt;&lt;br /&gt;7.  Client.policy should have similar line above(5)&lt;br /&gt;&lt;br /&gt;8. here -Djava.rmi.server.codebase=http://pc-krsethur-in:1185/test/ will be set because during client execution, we call executeTask on the proxy remote object. The remote object running in the RMI runtime will delegate to the task object. Now, the task object is still not present in the RMI runtime and will give class not found exception. To prevent that we set the codebase to &lt;a href="http://pc-krsethur-in:1185/test/"&gt;http://pc-krsethur-in:1185/test/&lt;/a&gt;. Here pc-krsethur-in:1185 will deliver files present under D:\work\MyWork\rmi\suntutorial. However, the task class is present in D:\work\MyWork\rmi\suntutorial\test folder. Hence, we append the test/ in the URL for the codebase. Our local file server will serve the classes from D:\work\MyWork\rmi\suntutorial\test for RMI runtime during client execution. Similarly, when the server was started, during binding of remote object, the interface classes(Compute.class and Task.class) for the RMI runtime was served by -Djava.rmi.server.codebase=http://pc-krsethur-in:1185/.&lt;br /&gt;&lt;br /&gt;9. After a single execution of both server and client, the classes(Compute.class and Task.class) for the server execution and the class(Task.class) from client execution will be present in the RMI runtime and hence if the local file server is stopped at this time and the server is aborted and restarted, it will work fine without any error about class not found. Similarly if the client is run now also, the client will work fine, because the Task.class is already loaded in the RMI runtime.&lt;br /&gt;&lt;br /&gt;10. Now if we stop the rmiregistry.exe(thus all the classes loaded in RMI runtime are gone) and restart the rmiregistry and then start the server or client(with the local file server stopped), they will fail with class not found exception.&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8982674345885868";
google_ad_width = 728;
google_ad_height = 15;
google_ad_format = "728x15_0ads_al";
google_ad_channel = "";
google_color_border = "336699";
google_color_bg = "FFFFFF";
google_color_link = "0000FF";
google_color_text = "000000";
google_color_url = "008000";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7419916-4514758433558371631?l=krsethur.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krsethur.blogspot.com/feeds/4514758433558371631/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7419916&amp;postID=4514758433558371631' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/4514758433558371631'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/4514758433558371631'/><link rel='alternate' type='text/html' href='http://krsethur.blogspot.com/2006/12/rmi-tutorial-on-sun.html' title='RMI tutorial on SUN'/><author><name>S. Krishnamoorthy</name><uri>http://www.blogger.com/profile/01839756663272614286</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7419916.post-6397307425719055448</id><published>2006-10-23T10:08:00.000+05:30</published><updated>2007-04-24T11:49:04.493+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='SCWCD'/><title type='text'>Mapping URL to servlet</title><content type='html'>&lt;ul&gt;&lt;br /&gt; &lt;li&gt;Request URI = context path + servlet path + path info&lt;/li&gt;&lt;br /&gt; &lt;li&gt;Context Path and Servlet Path start with a / but do not end with it.&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;strong&gt;Identifying Servlet Path&lt;/strong&gt;&lt;br /&gt;&lt;ol&gt;&lt;br /&gt; &lt;li&gt;Exact match of URI to any servlet mapping. In this case, entire match is servlet path and path info is null&lt;/li&gt;&lt;br /&gt; &lt;li&gt;Recursive match the longest path by stepping down the request URI path tree to a directory at a time, using / character as a path separator.&lt;/li&gt;&lt;br /&gt; &lt;li&gt;last node of request URI contains extension and there exists servlet that handles request for that extension,&lt;/li&gt;&lt;br /&gt; &lt;li&gt;forward to default servlet. If no default servlet, send an error message&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8982674345885868";
google_ad_width = 728;
google_ad_height = 15;
google_ad_format = "728x15_0ads_al";
google_ad_channel = "";
google_color_border = "336699";
google_color_bg = "FFFFFF";
google_color_link = "0000FF";
google_color_text = "000000";
google_color_url = "008000";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7419916-6397307425719055448?l=krsethur.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krsethur.blogspot.com/feeds/6397307425719055448/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7419916&amp;postID=6397307425719055448' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/6397307425719055448'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/6397307425719055448'/><link rel='alternate' type='text/html' href='http://krsethur.blogspot.com/2007/10/mapping-url-to-servlet.html' title='Mapping URL to servlet'/><author><name>S. Krishnamoorthy</name><uri>http://www.blogger.com/profile/01839756663272614286</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7419916.post-5882606295035374243</id><published>2006-10-23T10:05:00.000+05:30</published><updated>2007-04-24T11:49:23.259+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='SCWCD'/><title type='text'>My Notes for SCWCD</title><content type='html'>&lt;ol&gt;&lt;br /&gt; &lt;li&gt;Browser sends web request when&lt;br /&gt;  - user clicks on the hyperlink&lt;br /&gt;  - form post&lt;br /&gt;  - enters address in address bar and press enter&lt;/li&gt;&lt;br /&gt; &lt;li&gt;For form data in POST method, enctype attribute should be set as multipart-formdata&lt;/li&gt;&lt;br /&gt; &lt;li&gt;Difference between GET and POST on : resource type, type of data,amount of data,visibility and caching&lt;/li&gt;&lt;br /&gt; &lt;li&gt;Signature of method doXXXX is protected void and it throws ServletException, IOException&lt;/li&gt;&lt;br /&gt; &lt;li&gt;ServletRequest defines getParameter(String Name), getParameterValues(String Name) and getParameterNames() which return String, String[] and Enumeration respectively.&lt;/li&gt;&lt;br /&gt; &lt;li&gt;HttpServletRequest defines getHeader(String Name), getHeaders(String Name) and getHeaderNames() which  return String, Enumeration and Enumeration respectively.&lt;/li&gt;&lt;br /&gt; &lt;li&gt;getWriter on ServletResponse returns PrintWriter object and getOutputStream returns ServletOutputStream(extends OutputStream).&lt;/li&gt;&lt;br /&gt; &lt;li&gt;Call to setContentType for setting the mimetype should be done on response object before getWriter or getOutputStream is invoked.&lt;/li&gt;&lt;br /&gt; &lt;li&gt;Either getWriter or getOutputStream should be called. Mixing will result in IllegalStateException&lt;/li&gt;&lt;br /&gt; &lt;li&gt;setHeader on response object sets the header. setIntHeader and setDateHeader similar functions. addHeader, addIntHeader and addDateHeader sets new value for same header if already exists. containsHeader which returns boolean returns true if the header is already set.&lt;/li&gt;&lt;br /&gt; &lt;li&gt;Common headers are : Date, Expires, Last-Modified and Refresh&lt;/li&gt;&lt;br /&gt; &lt;li&gt;sendRedirect on response object does a browser redirect. Calling redirect after response is committed (calling flush on writer) will cause IllegalStateException&lt;/li&gt;&lt;br /&gt; &lt;li&gt;sendError(int errorcode) will send the error code in response header so that browser can display appropriate message(or web server sends appropriate contents).&lt;/li&gt;&lt;br /&gt; &lt;li&gt;ServletContainer loads and instantiates servlet by calling Class.forName(...).new Instance(). To do this there should be a public constructor with no arguments. Having a default class with no constructor or a public class with some constructor having arguments(no default constructor) will error when accessed by client with 500 status.&lt;/li&gt;&lt;br /&gt; &lt;li&gt;Two init methods. one takes ServletConfig and the other none. Overriding the one which takes parameter requires a call to super.init to store the config object. instead the GenericServlet's init method which takes parameter makes a call to the no argument init method. So, overriding the no argument init method takes care of everything. To get servletconfig in no arg method call, getServletConfig()&lt;/li&gt;&lt;br /&gt; &lt;li&gt;Servlet not initialized at startup to reduce the startup time. However if large initialization is done then the first request for servlet will take long time. To prevent this servlet can be preinitialized at startup by the element in descriptor.&lt;/li&gt;&lt;br /&gt; &lt;li&gt;ServletConfig class has getInitParameter and getInitParameterNames which return String and Enumeration respectively. It has getServletContext and getServletName methods.&lt;/li&gt;&lt;br /&gt; &lt;li&gt;getResource on ServletContext return java.net.URL. call openStream on URL to get InputStream. Instead call getResourceAsStream to directly get Stream corresponding to resource.&lt;/li&gt;&lt;br /&gt; &lt;li&gt;Limitation of getResource is that any URL for any active resource cannot be passed. This will result in security loophole. getResource on jsp file returns the source code of jsp and not the executed output.&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8982674345885868";
google_ad_width = 728;
google_ad_height = 15;
google_ad_format = "728x15_0ads_al";
google_ad_channel = "";
google_color_border = "336699";
google_color_bg = "FFFFFF";
google_color_link = "0000FF";
google_color_text = "000000";
google_color_url = "008000";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7419916-5882606295035374243?l=krsethur.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krsethur.blogspot.com/feeds/5882606295035374243/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7419916&amp;postID=5882606295035374243' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/5882606295035374243'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/5882606295035374243'/><link rel='alternate' type='text/html' href='http://krsethur.blogspot.com/2006/10/my-notes-for-scwcd.html' title='My Notes for SCWCD'/><author><name>S. Krishnamoorthy</name><uri>http://www.blogger.com/profile/01839756663272614286</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7419916.post-6917147019384897462</id><published>2006-10-23T09:55:00.000+05:30</published><updated>2007-04-24T11:49:35.964+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><title type='text'>Oracle Collections</title><content type='html'>Good Link for on Oracle collection : &lt;a target="_blank" href="http://sheikyerbouti.developpez.com/collections/collections.htm"&gt;http://sheikyerbouti.developpez.com/collections/collections.htm&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8982674345885868";
google_ad_width = 728;
google_ad_height = 15;
google_ad_format = "728x15_0ads_al";
google_ad_channel = "";
google_color_border = "336699";
google_color_bg = "FFFFFF";
google_color_link = "0000FF";
google_color_text = "000000";
google_color_url = "008000";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7419916-6917147019384897462?l=krsethur.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krsethur.blogspot.com/feeds/6917147019384897462/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7419916&amp;postID=6917147019384897462' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/6917147019384897462'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/6917147019384897462'/><link rel='alternate' type='text/html' href='http://krsethur.blogspot.com/2006/09/oracle-collections.html' title='Oracle Collections'/><author><name>S. Krishnamoorthy</name><uri>http://www.blogger.com/profile/01839756663272614286</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7419916.post-8333115174089944207</id><published>2006-10-19T10:05:00.000+05:30</published><updated>2007-04-24T11:50:58.812+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Internet Explorer'/><title type='text'>Microsoft Fiddler - HTTP Proxy</title><content type='html'>Installed IE7 and got a good add-on for debugging http traffic. &lt;a href="http://www.fiddlertool.com/fiddler/"&gt;Fiddler Link&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8982674345885868";
google_ad_width = 728;
google_ad_height = 15;
google_ad_format = "728x15_0ads_al";
google_ad_channel = "";
google_color_border = "336699";
google_color_bg = "FFFFFF";
google_color_link = "0000FF";
google_color_text = "000000";
google_color_url = "008000";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7419916-8333115174089944207?l=krsethur.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krsethur.blogspot.com/feeds/8333115174089944207/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7419916&amp;postID=8333115174089944207' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/8333115174089944207'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/8333115174089944207'/><link rel='alternate' type='text/html' href='http://krsethur.blogspot.com/2006/10/microsoft-fiddler-http-proxy.html' title='Microsoft Fiddler - HTTP Proxy'/><author><name>S. Krishnamoorthy</name><uri>http://www.blogger.com/profile/01839756663272614286</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7419916.post-4604830995505073329</id><published>2006-09-25T10:03:00.000+05:30</published><updated>2007-04-24T11:50:05.687+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='SCJP 5.0'/><title type='text'>Cleared SCJP 5.0 atlast</title><content type='html'>Cleared SCJP5 today with 91%.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Split Up:&lt;/strong&gt;&lt;br /&gt;Declarations, Initialization and Scoping - 100&lt;br /&gt;Flow control : 81&lt;br /&gt;API : 100&lt;br /&gt;Concurrency : 87&lt;br /&gt;OO concepts: 90&lt;br /&gt;Collections / Generics : 90&lt;br /&gt;Fundamentals : 90&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8982674345885868";
google_ad_width = 728;
google_ad_height = 15;
google_ad_format = "728x15_0ads_al";
google_ad_channel = "";
google_color_border = "336699";
google_color_bg = "FFFFFF";
google_color_link = "0000FF";
google_color_text = "000000";
google_color_url = "008000";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7419916-4604830995505073329?l=krsethur.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krsethur.blogspot.com/feeds/4604830995505073329/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7419916&amp;postID=4604830995505073329' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/4604830995505073329'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/4604830995505073329'/><link rel='alternate' type='text/html' href='http://krsethur.blogspot.com/2006/09/cleared-scjp-50-atlast.html' title='Cleared SCJP 5.0 atlast'/><author><name>S. Krishnamoorthy</name><uri>http://www.blogger.com/profile/01839756663272614286</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7419916.post-9081042294399526773</id><published>2006-09-24T10:02:00.001+05:30</published><updated>2007-04-24T11:50:23.702+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='SCJP 5.0'/><title type='text'>finalize method</title><content type='html'>if in finalized method, there is a call to super(), then handle the throwable in the finalize method of the class, as the finalize of Object class throws Throwable.&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8982674345885868";
google_ad_width = 728;
google_ad_height = 15;
google_ad_format = "728x15_0ads_al";
google_ad_channel = "";
google_color_border = "336699";
google_color_bg = "FFFFFF";
google_color_link = "0000FF";
google_color_text = "000000";
google_color_url = "008000";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7419916-9081042294399526773?l=krsethur.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krsethur.blogspot.com/feeds/9081042294399526773/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7419916&amp;postID=9081042294399526773' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/9081042294399526773'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/9081042294399526773'/><link rel='alternate' type='text/html' href='http://krsethur.blogspot.com/2006/09/finalize-method.html' title='finalize method'/><author><name>S. Krishnamoorthy</name><uri>http://www.blogger.com/profile/01839756663272614286</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7419916.post-8181450154495964366</id><published>2006-09-24T10:02:00.000+05:30</published><updated>2007-04-24T11:50:23.702+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='SCJP 5.0'/><title type='text'>synchronized code</title><content type='html'>synchronization possible on objects only and not on primitives&lt;br /&gt;&lt;br /&gt;int x;&lt;br /&gt;&lt;br /&gt;synchronized(x) will be compiler error. No autoboxing here...&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8982674345885868";
google_ad_width = 728;
google_ad_height = 15;
google_ad_format = "728x15_0ads_al";
google_ad_channel = "";
google_color_border = "336699";
google_color_bg = "FFFFFF";
google_color_link = "0000FF";
google_color_text = "000000";
google_color_url = "008000";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7419916-8181450154495964366?l=krsethur.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krsethur.blogspot.com/feeds/8181450154495964366/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7419916&amp;postID=8181450154495964366' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/8181450154495964366'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/8181450154495964366'/><link rel='alternate' type='text/html' href='http://krsethur.blogspot.com/2006/09/synchronized-code.html' title='synchronized code'/><author><name>S. Krishnamoorthy</name><uri>http://www.blogger.com/profile/01839756663272614286</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7419916.post-7837977613137560828</id><published>2006-09-24T10:01:00.000+05:30</published><updated>2007-04-24T11:50:23.703+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='SCJP 5.0'/><title type='text'>Assign String to String Buffer</title><content type='html'>StringBuffer sb = "hello";&lt;br /&gt;&lt;br /&gt;this won't compile. StringBuffer have to be explicity created by new operator.&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8982674345885868";
google_ad_width = 728;
google_ad_height = 15;
google_ad_format = "728x15_0ads_al";
google_ad_channel = "";
google_color_border = "336699";
google_color_bg = "FFFFFF";
google_color_link = "0000FF";
google_color_text = "000000";
google_color_url = "008000";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7419916-7837977613137560828?l=krsethur.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krsethur.blogspot.com/feeds/7837977613137560828/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7419916&amp;postID=7837977613137560828' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/7837977613137560828'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/7837977613137560828'/><link rel='alternate' type='text/html' href='http://krsethur.blogspot.com/2006/09/assign-string-to-string-buffer.html' title='Assign String to String Buffer'/><author><name>S. Krishnamoorthy</name><uri>http://www.blogger.com/profile/01839756663272614286</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7419916.post-2888030445041334588</id><published>2006-09-24T10:00:00.000+05:30</published><updated>2007-04-24T11:50:23.703+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='SCJP 5.0'/><title type='text'>Ambiguous Match</title><content type='html'>When class implements two or more interface(or extends classes) containing same member varaible type(say, int i). Referencing this variable in the new class will cause ambiguous match for compiler as long as that variable is not redefined in the new class. Redefining the variable in new class will resolve the issue.&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8982674345885868";
google_ad_width = 728;
google_ad_height = 15;
google_ad_format = "728x15_0ads_al";
google_ad_channel = "";
google_color_border = "336699";
google_color_bg = "FFFFFF";
google_color_link = "0000FF";
google_color_text = "000000";
google_color_url = "008000";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7419916-2888030445041334588?l=krsethur.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krsethur.blogspot.com/feeds/2888030445041334588/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7419916&amp;postID=2888030445041334588' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/2888030445041334588'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/2888030445041334588'/><link rel='alternate' type='text/html' href='http://krsethur.blogspot.com/2006/09/ambiguous-match.html' title='Ambiguous Match'/><author><name>S. Krishnamoorthy</name><uri>http://www.blogger.com/profile/01839756663272614286</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7419916.post-7789458175672214055</id><published>2006-09-24T09:59:00.000+05:30</published><updated>2007-04-24T11:50:23.703+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='SCJP 5.0'/><title type='text'>Method of private inner class : Accessibility</title><content type='html'>Not possible to access methods of private inner class as the following code will give compile error.&lt;br /&gt;&lt;code&gt;&lt;br /&gt;class MyOuter{&lt;br /&gt;private class MyInner{&lt;br /&gt;public float f(){return 1.2f;}&lt;br /&gt;}&lt;br /&gt;public MyInner getMyInner(){&lt;br /&gt;return new MyInner();&lt;br /&gt;}&lt;/code&gt;&lt;code&gt;}&lt;br /&gt;&lt;br /&gt;public class Test13{&lt;br /&gt;public static void main(String... args){&lt;br /&gt;MyOuter o = new MyOuter();&lt;br /&gt;float f = new MyOuter().getMyInner().f();&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8982674345885868";
google_ad_width = 728;
google_ad_height = 15;
google_ad_format = "728x15_0ads_al";
google_ad_channel = "";
google_color_border = "336699";
google_color_bg = "FFFFFF";
google_color_link = "0000FF";
google_color_text = "000000";
google_color_url = "008000";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7419916-7789458175672214055?l=krsethur.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krsethur.blogspot.com/feeds/7789458175672214055/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7419916&amp;postID=7789458175672214055' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/7789458175672214055'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/7789458175672214055'/><link rel='alternate' type='text/html' href='http://krsethur.blogspot.com/2006/09/method-of-private-inner-class.html' title='Method of private inner class : Accessibility'/><author><name>S. Krishnamoorthy</name><uri>http://www.blogger.com/profile/01839756663272614286</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7419916.post-6579192647206261191</id><published>2006-09-24T09:58:00.000+05:30</published><updated>2007-04-24T11:50:23.704+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='SCJP 5.0'/><title type='text'>Format string conversion</title><content type='html'>For %b(boolean) : All data types can be passed&lt;br /&gt;&lt;br /&gt;For %c(char) : byte, char, short, int&lt;br /&gt;&lt;br /&gt;For %d(int) : byte, short, int, long (No char)&lt;br /&gt;&lt;br /&gt;For %f(float) : only float and double&lt;br /&gt;&lt;br /&gt;For %s(string) : everything&lt;br /&gt;&lt;br /&gt;=======================================&lt;br /&gt;&lt;br /&gt;public class Test12{&lt;br /&gt;public static void main(String... args){&lt;br /&gt;boolean b = false;&lt;br /&gt;byte by = 2;&lt;br /&gt;char c = 'A';&lt;br /&gt;short s = 7;&lt;br /&gt;int i = 35565;&lt;br /&gt;long l = 2345676436323746l;&lt;br /&gt;float f = 234.567f;&lt;br /&gt;double d = 234.678;&lt;br /&gt;//System.out.printf("%d\t", b);&lt;br /&gt;System.out.printf("%d\t", by);&lt;br /&gt;//System.out.printf("%d\t", c);&lt;br /&gt;System.out.printf("%d\t", s);&lt;br /&gt;System.out.printf("%d\t", i);&lt;br /&gt;System.out.printf("%d\t", l);&lt;br /&gt;//System.out.printf("%d\t", f);&lt;br /&gt;//System.out.printf("%d\t", d);&lt;br /&gt;System.out.println();&lt;br /&gt;System.out.printf("%b\t", b);&lt;br /&gt;System.out.printf("%b\t", by);&lt;br /&gt;System.out.printf("%b\t", c);&lt;br /&gt;System.out.printf("%b\t", s);&lt;br /&gt;System.out.printf("%b\t", i);&lt;br /&gt;System.out.printf("%b\t", l);&lt;br /&gt;System.out.printf("%b\t", f);&lt;br /&gt;System.out.printf("%b\t", d);&lt;br /&gt;System.out.println();&lt;br /&gt;System.out.printf("%s\t", b);&lt;br /&gt;System.out.printf("%s\t", by);&lt;br /&gt;System.out.printf("%s\t", c);&lt;br /&gt;System.out.printf("%s\t", s);&lt;br /&gt;System.out.printf("%s\t", i);&lt;br /&gt;System.out.printf("%s\t", l);&lt;br /&gt;System.out.printf("%s\t", f);&lt;br /&gt;System.out.printf("%s\t", d);&lt;br /&gt;System.out.println();&lt;br /&gt;//System.out.printf("%f\t", b);&lt;br /&gt;//System.out.printf("%f\t", by);&lt;br /&gt;//System.out.printf("%f\t", c);&lt;br /&gt;//System.out.printf("%f\t", s);&lt;br /&gt;//System.out.printf("%f\t", i);&lt;br /&gt;//System.out.printf("%f\t", l);&lt;br /&gt;System.out.printf("%f\t", f);&lt;br /&gt;System.out.printf("%f\t", d);&lt;br /&gt;System.out.println();&lt;br /&gt;//System.out.printf("%c\t", b);&lt;br /&gt;System.out.printf("%c\t", by);&lt;br /&gt;System.out.printf("%c\t", c);&lt;br /&gt;System.out.printf("%c\t", s);&lt;br /&gt;System.out.printf("%c\t", i);&lt;br /&gt;//System.out.printf("%c\t", l);&lt;br /&gt;//System.out.printf("%c\t", f);&lt;br /&gt;//System.out.printf("%c\t", d);&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;========================&lt;br /&gt;&lt;br /&gt;Output:&lt;br /&gt;&lt;br /&gt;2    7    35565    2345676436323746&lt;br /&gt;false    true    true    true    true    true    true    true&lt;br /&gt;false    2    A    7    35565    2345676436323746    234.567    234.678&lt;br /&gt;234.567001    234.678000&lt;br /&gt;    A        ?&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8982674345885868";
google_ad_width = 728;
google_ad_height = 15;
google_ad_format = "728x15_0ads_al";
google_ad_channel = "";
google_color_border = "336699";
google_color_bg = "FFFFFF";
google_color_link = "0000FF";
google_color_text = "000000";
google_color_url = "008000";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7419916-6579192647206261191?l=krsethur.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krsethur.blogspot.com/feeds/6579192647206261191/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7419916&amp;postID=6579192647206261191' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/6579192647206261191'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/6579192647206261191'/><link rel='alternate' type='text/html' href='http://krsethur.blogspot.com/2006/09/format-string-conversion.html' title='Format string conversion'/><author><name>S. Krishnamoorthy</name><uri>http://www.blogger.com/profile/01839756663272614286</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7419916.post-1540555980794965768</id><published>2006-09-23T09:58:00.000+05:30</published><updated>2007-04-24T11:50:23.704+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='SCJP 5.0'/><title type='text'>OO Encapsulation</title><content type='html'>Advantages of encapsulation:&lt;br /&gt;&lt;ol&gt;&lt;br /&gt; &lt;li&gt;Reusability of code&lt;/li&gt;&lt;br /&gt; &lt;li&gt;Code Clarity&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8982674345885868";
google_ad_width = 728;
google_ad_height = 15;
google_ad_format = "728x15_0ads_al";
google_ad_channel = "";
google_color_border = "336699";
google_color_bg = "FFFFFF";
google_color_link = "0000FF";
google_color_text = "000000";
google_color_url = "008000";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7419916-1540555980794965768?l=krsethur.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krsethur.blogspot.com/feeds/1540555980794965768/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7419916&amp;postID=1540555980794965768' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/1540555980794965768'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/1540555980794965768'/><link rel='alternate' type='text/html' href='http://krsethur.blogspot.com/2006/09/oo-encapsulation.html' title='OO Encapsulation'/><author><name>S. Krishnamoorthy</name><uri>http://www.blogger.com/profile/01839756663272614286</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7419916.post-1134442185246245831</id><published>2006-09-22T09:57:00.000+05:30</published><updated>2007-04-24T11:50:23.704+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='SCJP 5.0'/><title type='text'>Some more SCJP5 tips</title><content type='html'>&lt;ol&gt;&lt;br /&gt; &lt;li&gt;enum declaration outside class cannot contain static, final or any access modifiers, although enum type is implicity static and final. However enum declaration inside class can be declared as static(although implicitly static) but explicit declaration as final will be compiler error. Explicit declaration of static or final for enums outside class is also compiler error.&lt;/li&gt;&lt;br /&gt; &lt;li&gt;Two special cases where primitive == doesn't match the object equals method. NaN and +0.0f with -0.0f. For first case, primitive == is false(so equals will return true) and for second case primitive == is true(so equals will return false).&lt;/li&gt;&lt;br /&gt; &lt;li&gt;final instance variables need to get initialized before the constructor ends.(else compiler error).&lt;/li&gt;&lt;br /&gt; &lt;li&gt;Protected member inherited to subclass can be accessed in the subclass by a member of declared type as subclass but not by a member of declared type as superclass. Inherited protected member will not be accessible by other classes in the same package of subclass(unless they also extend the subclass).&lt;/li&gt;&lt;br /&gt; &lt;li&gt;ArrayStoreException : Storing a object in a array of another object type. E.g., Object[] a = new String[5]; a[0] = new Integer(1); here storing a integer in a array object(whose runtime type is String array causes Heap Pollution).&lt;/li&gt;&lt;br /&gt; &lt;li&gt;Compile type determines which overloaded method to be invoked. Run time type determine which overridden method to be invoked.&lt;/li&gt;&lt;br /&gt; &lt;li&gt;Constructor is never inherited and hence no overriding. static methods are inherited but can not be overridden.&lt;/li&gt;&lt;br /&gt; &lt;li&gt;result of expression is integer. so, byte b = 7+3; will be compile error. Needs explicit cast. However for compound assignment, explicit cast is not required. Thus, byte b = 127; b += 3; will run fine and will give output as -126.&lt;/li&gt;&lt;br /&gt; &lt;li&gt;local variable initialization before use. Even null check on a local variable cannot be done before the local variable is initially set as null. Thus, Date d; if(d == null) will cause variable not initialized error. Initialization within if condition or for loop which the compiler is not certain will be executed and then accessing the variable later down the line will also cause variable not initialized error.&lt;/li&gt;&lt;br /&gt; &lt;li&gt;When initializing multi-dimension array, the second size can be omitted. However, before assigning the elements into the second dimension array, it has to be initialized with the size of the second dimension. i.e., each of the first dimension array should be assigned a new array object with size specified in the new constructor.&lt;/li&gt;&lt;br /&gt; &lt;li&gt;auto-unboxing may result in NPE. e.g., passing wrapper objects to method which expects a primitive and that the wrapper object passed is a instance member variable not initialized.&lt;/li&gt;&lt;br /&gt; &lt;li&gt;overloading between methods is fine between one which takes a primitive and other which takes the wrapper of primitive.&lt;/li&gt;&lt;br /&gt; &lt;li&gt;In switch statement, case labels should be compile time constants(final variable should be initialized in same line when declared). Duplicate case label will be a compile time error. case label constants should be within the range of the switch argument otherwise compile error.&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8982674345885868";
google_ad_width = 728;
google_ad_height = 15;
google_ad_format = "728x15_0ads_al";
google_ad_channel = "";
google_color_border = "336699";
google_color_bg = "FFFFFF";
google_color_link = "0000FF";
google_color_text = "000000";
google_color_url = "008000";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7419916-1134442185246245831?l=krsethur.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krsethur.blogspot.com/feeds/1134442185246245831/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7419916&amp;postID=1134442185246245831' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/1134442185246245831'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/1134442185246245831'/><link rel='alternate' type='text/html' href='http://krsethur.blogspot.com/2006/09/some-more-scjp5-tips.html' title='Some more SCJP5 tips'/><author><name>S. Krishnamoorthy</name><uri>http://www.blogger.com/profile/01839756663272614286</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7419916.post-3569506800475040700</id><published>2006-08-30T09:55:00.000+05:30</published><updated>2007-04-24T11:52:07.494+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java EE'/><title type='text'>KeepResident plugin for Eclipse/Jdeveloper</title><content type='html'>Jdeveloper being slow when shifting the application in windows. Reason being the windows swapping the jdeveloper memory even when large amount of physical memory is available.Application has a working set size. The default value is much too small for big Java applications like Eclipse. Hence, windows does a swapping. To prevent this, one thing that can be done is to increase the minimum water mark of this working set size. Then, there is another problem that when the user memory is less than the minimum working set size, windows will think that the application is not used and will do swapping again. Using VirtualLock() will prevent this and force Windows to keep Eclipse in memory.&lt;br /&gt;&lt;br /&gt;Got this information from the blog : http://www.orablogs.com/gdavison/archives/001659.html&lt;br /&gt;&lt;br /&gt;FAQ on this plugin also provides a clear information : http://suif.stanford.edu/pub/keepresident/faq.html&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8982674345885868";
google_ad_width = 728;
google_ad_height = 15;
google_ad_format = "728x15_0ads_al";
google_ad_channel = "";
google_color_border = "336699";
google_color_bg = "FFFFFF";
google_color_link = "0000FF";
google_color_text = "000000";
google_color_url = "008000";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7419916-3569506800475040700?l=krsethur.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krsethur.blogspot.com/feeds/3569506800475040700/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7419916&amp;postID=3569506800475040700' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/3569506800475040700'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/3569506800475040700'/><link rel='alternate' type='text/html' href='http://krsethur.blogspot.com/2006/08/keepresident-plugin-for.html' title='KeepResident plugin for Eclipse/Jdeveloper'/><author><name>S. Krishnamoorthy</name><uri>http://www.blogger.com/profile/01839756663272614286</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7419916.post-7716898686891394592</id><published>2006-08-24T09:53:00.001+05:30</published><updated>2007-04-24T11:52:07.495+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java EE'/><title type='text'>SOA Suite - Developer Preview</title><content type='html'>SOA Suite developer preview is available from : &lt;a href="http://www.oracle.com/technology/software/products/ias/soapreview.html"&gt;http://www.oracle.com/technology/software/products/ias/soapreview.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Documentation for SOA, ESB, BPEL available from : &lt;a href="http://download-east.oracle.com/otn_hosted_doc/soa/docs/index.htm"&gt;http://download-east.oracle.com/otn_hosted_doc/soa/docs/index.htm&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8982674345885868";
google_ad_width = 728;
google_ad_height = 15;
google_ad_format = "728x15_0ads_al";
google_ad_channel = "";
google_color_border = "336699";
google_color_bg = "FFFFFF";
google_color_link = "0000FF";
google_color_text = "000000";
google_color_url = "008000";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7419916-7716898686891394592?l=krsethur.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krsethur.blogspot.com/feeds/7716898686891394592/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7419916&amp;postID=7716898686891394592' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/7716898686891394592'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/7716898686891394592'/><link rel='alternate' type='text/html' href='http://krsethur.blogspot.com/2006/08/soa-suite-developer-preview.html' title='SOA Suite - Developer Preview'/><author><name>S. Krishnamoorthy</name><uri>http://www.blogger.com/profile/01839756663272614286</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7419916.post-5726525894502017621</id><published>2006-08-24T09:53:00.000+05:30</published><updated>2007-04-24T11:52:07.495+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java EE'/><title type='text'>WSIF Notes</title><content type='html'>&lt;ol&gt;&lt;br /&gt; &lt;li&gt;The Web Services Invocation Framework (WSIF) is a simple Java API for invoking Web services, no matter how or where the services are provided.&lt;/li&gt;&lt;br /&gt; &lt;li&gt;WSIF enables developers to interact with abstract representations of Web services through their WSDL descriptions instead of working directly with the Simple Object Access Protocol (SOAP) APIs, which is the usual programming model.&lt;/li&gt;&lt;br /&gt; &lt;li&gt;WSIF allows stubless or completely dynamic invocation of a Web service, based upon examination of the meta-data about the service at runtime. It also allows updated implementations of a binding to be plugged into WSIF at runtime, and it allows the calling service to defer choosing a binding until runtime.&lt;/li&gt;&lt;br /&gt; &lt;li&gt;The separation of the API from the actual protocol also means you have flexibility - you can switch protocols, location, etc. without having to even recompile your client code.&lt;/li&gt;&lt;br /&gt; &lt;li&gt;So if your an externally available SOAP service becomes available as an EJB, you can switch to using RMI/IIOP by just changing the service description (the WSDL), without having to make any modification in applications that use the service.&lt;/li&gt;&lt;br /&gt; &lt;li&gt;You can exploit WSDL's extensibility, its capability to offer multiple bindings for the same service, deciding on a binding at runtime, etc.&lt;/li&gt;&lt;br /&gt; &lt;li&gt;In the WSDL specification, Web service binding descriptions are &lt;em&gt;extensions&lt;/em&gt; to the specification. So the SOAP binding, for example, is one way to expose the abstract functionality (&lt;em&gt;and there could be others&lt;/em&gt;). Since WSIF mirrors WSDL very closely, it also views SOAP as just one of several ways you might wish to expose your software's functionality. WSDL thus becomes a normalized description of software, and WSIF is the natural client programming model.&lt;/li&gt;&lt;br /&gt; &lt;li&gt;The WSIF API allows clients to invoke services focusing on the abstract service description - the portion of WSDL that covers the port types, operations and message exchanges without referring to real protocols.&lt;/li&gt;&lt;br /&gt; &lt;li&gt;The &lt;em&gt;abstract invocations&lt;/em&gt; work because they are backed up by protocol-specific pieces of code called &lt;em&gt;providers&lt;/em&gt;. A provider is what conducts the actual message exchanges according to the specifics of a particular protocol - for example, the SOAP provider that is packaged with WSIF uses a specific SOAP engine like Axis to do the real work.&lt;/li&gt;&lt;br /&gt; &lt;li&gt;The decoupling of the abstract invocation from the real provider that does the work results in a flexible programming model that allows dynamic invocation, late binding, clients being unaware of large scale changes to services - such as service migration, change of protocols, etc.&lt;/li&gt;&lt;br /&gt; &lt;li&gt;WSIF also allows new providers to be registered dynamically, so you could enhance your client's capability without ever having to recompile its code or redeploy it.&lt;/li&gt;&lt;br /&gt; &lt;li&gt;A provider is a piece of code that supports a WSDL extension and allows invocation of the service through that particular implementation. WSIF providers use the J2SE JAR service provider specification making them discoverable at runtime.&lt;/li&gt;&lt;br /&gt; &lt;li&gt;Some bindings for which provider is available : java, ejb, jms, jca&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8982674345885868";
google_ad_width = 728;
google_ad_height = 15;
google_ad_format = "728x15_0ads_al";
google_ad_channel = "";
google_color_border = "336699";
google_color_bg = "FFFFFF";
google_color_link = "0000FF";
google_color_text = "000000";
google_color_url = "008000";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7419916-5726525894502017621?l=krsethur.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krsethur.blogspot.com/feeds/5726525894502017621/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7419916&amp;postID=5726525894502017621' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/5726525894502017621'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/5726525894502017621'/><link rel='alternate' type='text/html' href='http://krsethur.blogspot.com/2006/08/wsif-notes.html' title='WSIF Notes'/><author><name>S. Krishnamoorthy</name><uri>http://www.blogger.com/profile/01839756663272614286</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7419916.post-5626658860146184449</id><published>2006-08-24T09:48:00.000+05:30</published><updated>2007-04-24T11:52:07.496+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java EE'/><title type='text'>WSDL Notes from W3C Spec</title><content type='html'>&lt;ol&gt;&lt;br /&gt; &lt;li&gt;WSDL is an XML format for describing network services as a set of endpoints operating on messages containing either document-oriented or procedure-oriented information.&lt;/li&gt;&lt;br /&gt; &lt;li&gt;Elements in WSDL:&lt;br /&gt;&lt;ol&gt;&lt;br /&gt; &lt;li&gt;&lt;strong&gt;Types&lt;/strong&gt; - a container for data type definitions using some type system (such as XSD).&lt;/li&gt;&lt;br /&gt; &lt;li&gt;&lt;strong&gt;Message&lt;/strong&gt; – an abstract, typed definition of the data being communicated.&lt;/li&gt;&lt;br /&gt; &lt;li&gt;&lt;strong&gt;Operation&lt;/strong&gt; – an abstract description of an action supported by the service.&lt;/li&gt;&lt;br /&gt; &lt;li&gt;&lt;strong&gt;Port Type&lt;/strong&gt; – an abstract set of operations supported by one or more endpoints.&lt;/li&gt;&lt;br /&gt; &lt;li&gt;&lt;strong&gt;Binding&lt;/strong&gt; – a concrete protocol and data format specification for a particular port type.&lt;/li&gt;&lt;br /&gt; &lt;li&gt;&lt;strong&gt;Port&lt;/strong&gt; – a single endpoint defined as a combination of a binding and a network address.&lt;/li&gt;&lt;br /&gt; &lt;li&gt;&lt;strong&gt;Service&lt;/strong&gt; – a collection of related endpoints.&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt; &lt;li&gt;WSDL doesn't introduce a type definition language. Supports XSD as canonical type system. Allows using other type definition languages via extensibility.&lt;/li&gt;&lt;br /&gt; &lt;li&gt;Binding mechanism is used to attach a specific protocol or data format or structure to an abstract message or operation or end point.&lt;/li&gt;&lt;br /&gt; &lt;li&gt;It introduces specific binding extensions for the following protocols and message format : SOAP 1.1, HTTP GET/POST, MIME. Other binding extensions can also be used.&lt;/li&gt;&lt;br /&gt; &lt;li&gt;Message definitions are always considered to be an abstract definition of the message content. A message binding describes how the abstract content is mapped into a concrete format.&lt;/li&gt;&lt;br /&gt; &lt;li&gt;WSDL has four transmission primitives that an endpoint can support:&lt;br /&gt;&lt;ol&gt;&lt;br /&gt; &lt;li&gt;One-Way:endpoint receives a message.&lt;/li&gt;&lt;br /&gt; &lt;li&gt;Request-Response:endpoint receives a message, and sends a correlated message.&lt;/li&gt;&lt;br /&gt; &lt;li&gt;Solicit-Response :endpoint sends a message, and receives a correlated message.&lt;/li&gt;&lt;br /&gt; &lt;li&gt;Notification : endpoint sends a message.&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt; &lt;li&gt;There may be any number of binding for a port type. A Binding must specify exactly one protocol. Binding must not specify address information.&lt;/li&gt;&lt;br /&gt; &lt;li&gt;A port must not specify more than one address. It must not specify any binding information other than address information.&lt;/li&gt;&lt;br /&gt; &lt;li&gt;Ports within service have the following relationship:&lt;br /&gt;&lt;ol&gt;&lt;br /&gt; &lt;li&gt;None of the ports communicate with each other (e.g. the output of one port is not the input of another).&lt;/li&gt;&lt;br /&gt; &lt;li&gt;If a service has several ports that share a port type, but employ different bindings or addresses, the ports are alternatives. This allows a consumer of a WSDL document to choose particular port(s) to communicate with based on some criteria (protocol, distance, etc.).&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt; &lt;li&gt;SOAP Binding extends WSDL with the following extension elements:&lt;br /&gt;&lt;ol&gt;&lt;br /&gt; &lt;li&gt;soap:binding - Signify that the binding is bound to the SOAP protocol format: Envelop, header and body. URI for the transport attribute of this element signifies which transport of SOAP. Can be HTTP, SMTP, FTP etc.,&lt;/li&gt;&lt;br /&gt; &lt;li&gt;soap:operation - Required for the HTTP protocol binding of SOAP. For other SOAP protocol bindings, soap:action attribute must not be specified and this attribute may be omitted.&lt;/li&gt;&lt;br /&gt; &lt;li&gt;soap:body - specifies how message parts appear inside soap body element. May be abstract schema defintiions or concrete. If abstract, then serialized according to some encoding style. The soap:body element is used in both RPC-oriented and document-oriented messages, but the style of the enclosing operation has important effects on how the Body section is structured:&lt;br /&gt;&lt;ol&gt;&lt;br /&gt; &lt;li&gt;If the operation style is rpc each part is a parameter or a return value and appears inside a wrapper element within the body&lt;/li&gt;&lt;br /&gt; &lt;li&gt;If the operation style is document there are no additional wrappers, and the message parts appear directly under the SOAP Body element.&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt; &lt;li&gt;soap:address - The SOAP address binding is used to give a port an address (a URI). The URI scheme specified for the address must correspond to the transport specified by the soap:binding.&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;strong&gt;SOAP Message Embedded in HTTP Request&lt;/strong&gt;&lt;br /&gt;&lt;pre&gt;POST /StockQuote HTTP/1.1 &lt;br /&gt;Host: www.stockquoteserver.com &lt;br /&gt;Content-Type: text/xml; charset="utf-8" &lt;br /&gt;Content-Length: nnnn &lt;br /&gt;SOAPAction: "Some-URI"  &lt;br /&gt;&lt;br /&gt;&amp;lt;soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;/soap/envelope/"&amp;gt; &lt;br /&gt;    &amp;lt;soapenv:Body&amp;gt; &lt;br /&gt;        &amp;lt;m:GetLastTradePrice xmlns:m="Some-URI"&amp;gt; &lt;br /&gt;            &amp;lt;m:tickerSymbol&amp;gt;DIS&amp;lt;/m:tickerSymbol&amp;gt; &lt;br /&gt;        &amp;lt;/m:GetLastTradePrice&amp;gt; &lt;br /&gt;    &amp;lt;/soapenv:Body&amp;gt; &lt;br /&gt;&amp;lt;/soapenv:Envelope&amp;gt;&lt;/pre&gt;&lt;br /&gt;&lt;p class="MsoCaption"&gt;&lt;strong&gt;SOAP Message Embedded in HTTP Response&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;HTTP/1.1 200 OK &lt;br /&gt;Content-Type: text/xml; charset="utf-8" &lt;br /&gt;Content-Length: nnnn  &lt;br /&gt;&lt;br /&gt;&amp;lt;soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;/soap/envelope/"&amp;gt; &lt;br /&gt;    &amp;lt;soapenv:Body&amp;gt; &lt;br /&gt;        &amp;lt;m:GetLastTradePriceResponse xmlns:m="Some-URI"&amp;gt; &lt;br /&gt;            &amp;lt;m:price&amp;gt;34.5&amp;lt;/m:price&amp;gt; &lt;br /&gt;        &amp;lt;/m:GetLastTradePriceResponse&amp;gt; &lt;br /&gt;    &amp;lt;/soapenv:Body&amp;gt; &lt;br /&gt;&amp;lt;/soapenv:Envelope&amp;gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8982674345885868";
google_ad_width = 728;
google_ad_height = 15;
google_ad_format = "728x15_0ads_al";
google_ad_channel = "";
google_color_border = "336699";
google_color_bg = "FFFFFF";
google_color_link = "0000FF";
google_color_text = "000000";
google_color_url = "008000";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7419916-5626658860146184449?l=krsethur.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krsethur.blogspot.com/feeds/5626658860146184449/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7419916&amp;postID=5626658860146184449' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/5626658860146184449'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/5626658860146184449'/><link rel='alternate' type='text/html' href='http://krsethur.blogspot.com/2007/08/wsdl-notes-from-w3c-spec.html' title='WSDL Notes from W3C Spec'/><author><name>S. Krishnamoorthy</name><uri>http://www.blogger.com/profile/01839756663272614286</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7419916.post-115562018046577548</id><published>2006-08-15T11:04:00.000+05:30</published><updated>2007-04-24T11:53:01.531+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='SCJP 5.0'/><title type='text'>Accessing class in another class</title><content type='html'>1.using packaged class in non-packaged or packaged  class: Need to use import.&lt;br /&gt;&lt;br /&gt;2.using non-packaged class in non-package class : can be present in same directory. Else if different directory, should be available from classpath. No need(and can't) to use import.&lt;br /&gt;&lt;br /&gt;3.using non-packaged class in packaged class: not possible at all(since the non-packaged class name mentioned in packaged class will be interpreted as belonging to the pacakged class's package and so the compiler will take this class as package.class and so will report wrong class file.&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8982674345885868";
google_ad_width = 728;
google_ad_height = 15;
google_ad_format = "728x15_0ads_al";
google_ad_channel = "";
google_color_border = "336699";
google_color_bg = "FFFFFF";
google_color_link = "0000FF";
google_color_text = "000000";
google_color_url = "008000";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7419916-115562018046577548?l=krsethur.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krsethur.blogspot.com/feeds/115562018046577548/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7419916&amp;postID=115562018046577548' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/115562018046577548'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/115562018046577548'/><link rel='alternate' type='text/html' href='http://krsethur.blogspot.com/2006/08/accessing-class-in-another-class.html' title='Accessing class in another class'/><author><name>S. Krishnamoorthy</name><uri>http://www.blogger.com/profile/01839756663272614286</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7419916.post-115090395728838284</id><published>2006-06-21T20:57:00.000+05:30</published><updated>2007-04-24T12:08:57.986+05:30</updated><title type='text'>Multiple DTD in xml and namespace workaround in DTD</title><content type='html'>Following xml fragments will give an idea of how to use multiple dtd's in xml and also the workaround of specifying namespace in dtd&lt;br /&gt;&lt;br /&gt;File : s.dtd&lt;br /&gt;============&lt;br /&gt;&amp;lt;?xml version="1.0" encoding="UTF-8"?&amp;gt;&lt;br /&gt;&amp;lt;!ELEMENT computer (ns1:address) &amp;gt;&lt;br /&gt;&amp;lt;!ELEMENT ns1:address (type, ipaddress)&amp;gt;&lt;br /&gt;&amp;lt;!ELEMENT type (#PCDATA)&amp;gt;&lt;br /&gt;&amp;lt;!ELEMENT ipaddress (#PCDATA)&amp;gt;&lt;br /&gt;&lt;br /&gt;File : s1.dtd&lt;br /&gt;==============&lt;br /&gt;&amp;lt;?xml version="1.0" encoding="UTF-8"?&amp;gt;&lt;br /&gt;&amp;lt;!ELEMENT ns2:student (name, ns2:address, computer) &amp;gt;&lt;br /&gt;&amp;lt;!ATTLIST ns2:student xmlns:ns2 CDATA #FIXED "http://krishna/ns2"&amp;gt;&lt;br /&gt;&amp;lt;!ELEMENT ns2:address (#PCDATA) &amp;gt;&lt;br /&gt;&amp;lt;!ELEMENT name (#PCDATA) &amp;gt;&lt;br /&gt;&lt;br /&gt;File:student.xml&lt;br /&gt;================&lt;br /&gt;&amp;lt;?xml version="1.0" encoding="UTF-8"?&amp;gt;&lt;br /&gt;&amp;lt;!DOCTYPE  ns2:student SYSTEM "s1.dtd" [&amp;lt;!ENTITY % s SYSTEM "s.dtd"&amp;gt;&lt;br /&gt;  %s;&lt;br /&gt;]&amp;gt;&lt;br /&gt;&amp;lt;ns2:student  xmlns:ns2="http://krishna/ns2"&amp;gt;&lt;br /&gt; &amp;lt;name &amp;gt;krishna&amp;lt;/name&amp;gt;&lt;br /&gt; &amp;lt;ns2:address&amp;gt;unknown&amp;lt;/ns2:address&amp;gt;&lt;br /&gt; &amp;lt;computer&amp;gt;&lt;br /&gt;  &amp;lt;ns1:address&amp;gt;&lt;br /&gt;   &amp;lt;type&amp;gt;&amp;lt;/type&amp;gt;&lt;br /&gt;   &amp;lt;ipaddress&amp;gt;&amp;lt;/ipaddress&amp;gt;&lt;br /&gt;  &amp;lt;/ns1:address&amp;gt;&lt;br /&gt; &amp;lt;/computer&amp;gt;&lt;br /&gt;&amp;lt;/ns2:student&amp;gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8982674345885868";
google_ad_width = 728;
google_ad_height = 15;
google_ad_format = "728x15_0ads_al";
google_ad_channel = "";
google_color_border = "336699";
google_color_bg = "FFFFFF";
google_color_link = "0000FF";
google_color_text = "000000";
google_color_url = "008000";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7419916-115090395728838284?l=krsethur.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krsethur.blogspot.com/feeds/115090395728838284/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7419916&amp;postID=115090395728838284' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/115090395728838284'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/115090395728838284'/><link rel='alternate' type='text/html' href='http://krsethur.blogspot.com/2006/06/multiple-dtd-in-xml-and-namespace.html' title='Multiple DTD in xml and namespace workaround in DTD'/><author><name>S. Krishnamoorthy</name><uri>http://www.blogger.com/profile/01839756663272614286</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7419916.post-115071471626814299</id><published>2006-06-19T16:21:00.000+05:30</published><updated>2007-04-24T11:53:01.531+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='SCJP 5.0'/><title type='text'>Anonymous array declaration</title><content type='html'>Anonymous arrays have to be assigned to the variables at the time of declaration of varaible itself. Assigning to the variable after variable declaration is not possible&lt;br /&gt;ie.,&lt;br /&gt;int[] i = {1,2,3} is fine. &lt;br /&gt;But,&lt;br /&gt;int[] i;&lt;br /&gt;i = {1,2,3} is compiler error.&lt;br /&gt;This restriction at the time of method invocation is valid, since we don't know the type of array(overloading issue). But for assignment the left side variable type is known. So, why should it be not possible to cast the anonymous array {1,2,3} to int[] and assign to variable.&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8982674345885868";
google_ad_width = 728;
google_ad_height = 15;
google_ad_format = "728x15_0ads_al";
google_ad_channel = "";
google_color_border = "336699";
google_color_bg = "FFFFFF";
google_color_link = "0000FF";
google_color_text = "000000";
google_color_url = "008000";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7419916-115071471626814299?l=krsethur.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krsethur.blogspot.com/feeds/115071471626814299/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7419916&amp;postID=115071471626814299' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/115071471626814299'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/115071471626814299'/><link rel='alternate' type='text/html' href='http://krsethur.blogspot.com/2006/06/anonymous-array-declaration.html' title='Anonymous array declaration'/><author><name>S. Krishnamoorthy</name><uri>http://www.blogger.com/profile/01839756663272614286</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7419916.post-115062790652285124</id><published>2006-06-18T16:19:00.000+05:30</published><updated>2007-04-24T11:53:01.532+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='SCJP 5.0'/><title type='text'>i=i++ produces the output "0" instead of "1".</title><content type='html'>The code &lt;br /&gt;int i = 0;&lt;br /&gt;i = i++;&lt;br /&gt;System.out.println(i);&lt;br /&gt;produces the output "0" instead of "1". &lt;br /&gt;&lt;br /&gt;"i = i++" roughly translates to &lt;br /&gt;&lt;br /&gt;int oldValue = i; &lt;br /&gt;i = i + 1;&lt;br /&gt;i = oldValue;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8982674345885868";
google_ad_width = 728;
google_ad_height = 15;
google_ad_format = "728x15_0ads_al";
google_ad_channel = "";
google_color_border = "336699";
google_color_bg = "FFFFFF";
google_color_link = "0000FF";
google_color_text = "000000";
google_color_url = "008000";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7419916-115062790652285124?l=krsethur.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krsethur.blogspot.com/feeds/115062790652285124/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7419916&amp;postID=115062790652285124' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/115062790652285124'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/115062790652285124'/><link rel='alternate' type='text/html' href='http://krsethur.blogspot.com/2006/06/ii-produces-output-0-instead-of-1.html' title='i=i++ produces the output &quot;0&quot; instead of &quot;1&quot;.'/><author><name>S. Krishnamoorthy</name><uri>http://www.blogger.com/profile/01839756663272614286</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7419916.post-115062716121509624</id><published>2006-06-18T16:05:00.000+05:30</published><updated>2007-04-24T11:53:01.532+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='SCJP 5.0'/><title type='text'>Are string literals garbage collected?</title><content type='html'>The answer is no. String class maintain a list of references to string(in heap) in the constant pool. When new is used to create string, then a new string object is created in heap and the reference to this object is returned to the code. Thus, we will have two string objects. If intern() method is called on this object, then the reference to the other string object(whose reference is maintained in literal pool) is returned to the code and the string object created using new will be garbage collected. Even when there are no references to the string literal object, string literal will not be garbage collected, because the reference to this object is still maintained in the string literal pool&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8982674345885868";
google_ad_width = 728;
google_ad_height = 15;
google_ad_format = "728x15_0ads_al";
google_ad_channel = "";
google_color_border = "336699";
google_color_bg = "FFFFFF";
google_color_link = "0000FF";
google_color_text = "000000";
google_color_url = "008000";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7419916-115062716121509624?l=krsethur.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krsethur.blogspot.com/feeds/115062716121509624/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7419916&amp;postID=115062716121509624' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/115062716121509624'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/115062716121509624'/><link rel='alternate' type='text/html' href='http://krsethur.blogspot.com/2006/06/are-string-literals-garbage-collected.html' title='Are string literals garbage collected?'/><author><name>S. Krishnamoorthy</name><uri>http://www.blogger.com/profile/01839756663272614286</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7419916.post-115055435509831834</id><published>2006-06-17T19:54:00.000+05:30</published><updated>2007-04-24T11:53:01.532+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='SCJP 5.0'/><title type='text'>My Notes from JLS 3.0</title><content type='html'>&lt;strong&gt;Lexical Structure&lt;/strong&gt;&lt;br /&gt;1. Legal code point is U+0000 to U+10FFFF. Code points greater than U+FFFF are supplementary characters. Supplementary characters are stored as pairs of two 16-bit code units. (High Surrogate range: U+DB80 to U+DBFF and Low Surrogate Range : U+DC00 to U+DFFF).&lt;br /&gt;2. Line Terminator is the ASCII character CR(“return”) followed by LF(“new line”).&lt;br /&gt;3. Input Elements are : Whitespace(space, horizontal tab, form feed), comment(/* .. */ and //) and token(Identifiers, keyword, literal, separator and operator). &lt;br /&gt;4. Comments do not nest.(/* and */ do not have special meaning inside // and // has no special meaning in comments that begin with /* or /**).&lt;br /&gt;5. Identifier : Identifierchars but not a keyword or BooleanLiteral or NullLiteral). &lt;br /&gt;6. Identifiers begin with JavaLetter(Character.isJavaIdentifierStart(int)) followed by JavaLetterOrDigit(Character.isJavaIdentifierPart(int)).&lt;br /&gt;7. Literals : Integer(Decimal, octal and hexadecimal), Floating point(decimal or hexadecimal), Boolean(true &amp; false), Character, String and Null literal.&lt;br /&gt;8. This assignment String s1 = "\u000a"; will cause compiler error. Because \u000a is line feed character. Hence, within string literal to use line feed use “\n”&lt;br /&gt;9. Literal Strings refer to the same string object. Strings computed by constant expressions are computed at compile time and then treated as if they are literals. String hello = "Hello", lo = "lo"; ((hello == ("Hel"+"lo")) is true.&lt;br /&gt;10. Strings computed by concatenation at run time are newly created and therefore distinct. Thus, (hello == “Hel” + lo) will be false.&lt;br /&gt;11. Escape sequence : b,t,n,f, r, “,’,\ and octal escape( \ followed by one to three octal digits).&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Types, Values and Variables&lt;/strong&gt;&lt;br /&gt;1. Strongly Typed language: Every variable and every expression has a type that is known at compile time.&lt;br /&gt;2. Integer operators throw NPE if unboxing conversion of a null reference is required. In divide and remainder operator, they throw Arithmetic exception, if right-hand operator is zero. OutofMemoryError in case of ++ and – if boxing conversion is required and there is not sufficient memory for conversion.&lt;br /&gt;3. Floating Point : Positive zero and negative zero compare equal.&lt;br /&gt;4. NaN is unordered, so the numerical comparison operators &lt;, &lt;=, &gt;, &gt;= return false if either or both the operands are NaN. Equality operator returns false if either operand is NaN. Inequality operator return true if either operand is NaN.&lt;br /&gt;5. The language uses round toward zero when converting a floating value to an integer&lt;br /&gt;6. An operation that overflows produces a signed infinity, an operation that underflows produces a denormalized value or a signed zero, and an operation that has no mathematically definite result produces NaN. All numeric operations with NaN as an operand produce NaN as a result.&lt;br /&gt;7. Heap pollution : List l = new ArrayList&lt;Number&gt;();  List&lt;String&gt; ls = l; // unchecked warning. Heap pollution arises, as the variable ls, declared to be a List&lt;String&gt;, refers to a value that is not in fact a List&lt;String&gt;.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Conversions and Promotions&lt;/strong&gt;&lt;br /&gt;1. Five Conversion Contexts : Assignment Conversions, Method Invocation Conversions, Casting conversion, String conversion, Numeric conversion&lt;br /&gt;2. 11 Conversion categories : Identity conversion, Widening primitive conversion, Narrowing Primitive Conversion, Widening and Narrowing primitive conversion, widening reference conversion, narrowing reference conversion, boxing conversion, Unboxing conversion, Unchecked conversion(raw type to generic type), capture conversion&lt;br /&gt;3. Narrowing primitive conversion : short to char is also narrowing primitive conversion(cause char is unsigned while short is signed. So short to char loses precision).&lt;br /&gt;4. Widening and Narrowing primitive conversion : byte to char. Here byte is first widened to int and then narrowed to char&lt;br /&gt;5. Assignment Conversions allows the following: identity, widening primitive, widening reference, boxing, unboxing.&lt;br /&gt;6. If the expression is a constant expression of type byte, short, char or int: &lt;br /&gt;a. Narrowing primitive conversion if type of variable is byte, short or char and the value of constant expression is representable in the type of variable.&lt;br /&gt;b. Narrowing primitive conversion followed by boxing conversion if type of variable is Byte, Short or Character and the value of constant expression is representable in byte, short or char respectively.&lt;br /&gt;7. Implicit narrowing of integer constants is not available in Method invocation conversions. (Reason being it will add complexity to the overloaded method resolution process).&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Names&lt;/strong&gt;&lt;br /&gt;1. Obscured declarations : a simple name may occur in contexts where it may potentially be interpreted as the name of variable, type or package. In this case, variable will be chosen in preference to a type, and that a type will be chosen in preference to a package.&lt;br /&gt;2. Members of package : sub package, top level class types and top level interface types&lt;br /&gt;3. Members of class type : classes, interface, fields and methods. &lt;br /&gt;4. A class or interface may have two or more fields with the same simple name if they are declared in different interfaces and inherited. An attempt to refer to any of the fields by its simple name results in a compile-time error.&lt;br /&gt;5. Members of array type : public final field length, public method clone and members inherited from Object(except method clone). &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Packages&lt;/strong&gt;&lt;br /&gt;1. A package may not contain two members of the same name, or a compile-time error results.&lt;br /&gt;2. package names mightg contain Unicode characters. If the host OS doesn’t support Unicode characters(\uxxxx) in their file system name, then the file name can be named by replacing the unicode characters as @xxxx. Java will map the Unicode character(\uxxxx) to the letters @xxxx in the file name.&lt;br /&gt;3. An implementation of the Java platform must support at least one unnamed package; it may support more than one unnamed package but is not required to do so. Which compilation units are in each unnamed package is determined by the host system.&lt;br /&gt;4. In implementations of the Java platform that use a hierarchical file system for storing packages, one typical strategy is to associate an unnamed package with each directory; only one unnamed package is observable at a time, namely the one that is associated with the "current working directory." The precise meaning of "current working directory" depends on the host system.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Classes&lt;/strong&gt;&lt;br /&gt;1. Newly declared fields can hide fields declared in a superclass or superinterface.&lt;br /&gt;2. Newly declared methods can hide, implement, or override methods declared in a superclass or superinterface.&lt;br /&gt;3. A compile-time error occurs if a class has the same simple name as any of its enclosing classes or interfaces.&lt;br /&gt;4. Enum types must not be declared abstract; doing so will result in a compile-time error.&lt;br /&gt;5. It is a compile-time error for an enum type E to have an abstract method m as a member unless E has one or more enum constants, and all of E's enum constants have class bodies that provide concrete implementations of m. &lt;br /&gt;6. It is a compile-time error for the class body of an enum constant to declare an abstract method.&lt;br /&gt;7. Inner classes may not declare static initializers or member interfaces. Inner classes may not declare static members, unless they are compile-time constant fields.&lt;br /&gt;8. Member interfaces (§8.5) are always implicitly static so they are never considered to be inner classes.&lt;br /&gt;9. When an inner class refers to an instance variable that is a member of a lexically enclosing class, the variable of the corresponding lexically enclosing instance is used. A blank final (§4.12.4) field of a lexically enclosing class may not be assigned within an inner class.&lt;br /&gt;10. It is a compile-time error if the evaluation of a variable initializer for a static field of a named class (or of an interface) can complete abruptly with a checked exception&lt;br /&gt;11. The declaration of a member needs to appear textually before it is used only if the member is an instance (respectively static) field of a class or interface C and all of the following conditions hold:&lt;br /&gt;a. The usage occurs in an instance (respectively static) variable initializer of C or in an instance (respectively static) initializer of C.&lt;br /&gt;b. The usage is not on the left hand side of an assignment.&lt;br /&gt;c. The usage is via a simple name.&lt;br /&gt;d. C is the innermost class or interface enclosing the usage.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Interfaces&lt;/strong&gt;&lt;br /&gt;1. It is a compile-time error to refer to a type parameter of an interface I anywhere in the declaration of a field or type member of I.&lt;br /&gt;2. All interface members are implicitly public. They are accessible outside the package where the interface is declared if the interface is also declared public or protected,&lt;br /&gt;3. If the interface declares a field with a certain name, then the declaration of that field is said to hide any and all accessible declarations of fields with the same name in superinterfaces of the interface.&lt;br /&gt;4. It is a compile-time error for the body of an interface declaration to declare two fields with the same name.&lt;br /&gt;5. A compile-time error occurs if an initialization expression for an interface field contains a reference by simple name to the same field or to another field whose declaration occurs textually later in the same interface.&lt;br /&gt;6. If the keyword this or the keyword super occurs in an initialization expression for a field of an interface, then unless the occurrence is within the body of an anonymous class, a compile-time error occurs.&lt;br /&gt;7. A method declared in an interface must not be declared strictfp or native or synchronized, or a compile-time error occurs, because those keywords describe implementation properties rather than interface properties.&lt;br /&gt;8. It is a compile-time error if an annotation type T contains an element of type T, either directly or indirectly.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Arrays&lt;/strong&gt;&lt;br /&gt;1. Arrays must be indexed by int values; short, byte, or char values may also be used as index values because they are subjected to unary numeric promotion  and become int values.&lt;br /&gt;2. An attempt to access an array component with a long index value results in a compile-time error.&lt;br /&gt;3. All array accesses are checked at run time; an attempt to use an index that is less than zero or greater than or equal to the length of the array causes an ArrayIndexOutOfBoundsException to be thrown.&lt;br /&gt;4. ArrayStoreException : An assignment to an element of an array whose type is A[], where A is a reference type, is checked at run-time to ensure that the value assigned can be assigned to the actual element type of the array, where the actual element type may be any reference type that is assignable to A.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Exceptions&lt;/strong&gt;&lt;br /&gt;1. If a try or catch block in a try-finally or try-catch-finally statement completes abruptly, then the finally clause is executed during propagation of the exception, even if no matching catch clause is ultimately found. If a finally clause is executed because of abrupt completion of a try block and the finally clause itself completes abruptly, then the reason for the abrupt completion of the try block is discarded and the new reason for abrupt completion is propagated from there.&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8982674345885868";
google_ad_width = 728;
google_ad_height = 15;
google_ad_format = "728x15_0ads_al";
google_ad_channel = "";
google_color_border = "336699";
google_color_bg = "FFFFFF";
google_color_link = "0000FF";
google_color_text = "000000";
google_color_url = "008000";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7419916-115055435509831834?l=krsethur.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krsethur.blogspot.com/feeds/115055435509831834/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7419916&amp;postID=115055435509831834' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/115055435509831834'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/115055435509831834'/><link rel='alternate' type='text/html' href='http://krsethur.blogspot.com/2006/06/my-notes-from-jls-30.html' title='My Notes from JLS 3.0'/><author><name>S. Krishnamoorthy</name><uri>http://www.blogger.com/profile/01839756663272614286</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7419916.post-115019087255634633</id><published>2006-06-13T14:56:00.000+05:30</published><updated>2007-04-24T12:00:32.851+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><title type='text'>Uninstalling Oracle 10g Manually from Windows XP</title><content type='html'>List of additional steps to do for cleaning the system completely after uninstall using universal installer.&lt;br /&gt;# Stop any Oracle services that have been left running.&lt;br /&gt;Start-&gt;Settings-&gt;Control Panel-&gt;Services&lt;br /&gt;Look for any services with names starting with 'Oracle' and stop them.&lt;br /&gt;# Run regedit and delete the following keys (some may have slightly different names in your registry):&lt;br /&gt;HKEY_CURRENT_USER\SOFTWARE\ORACLE&lt;br /&gt;HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE&lt;br /&gt;HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet  Services\EventLog\Application\Oracle.oracle&lt;br /&gt;HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet  Services\OracleDBConsole&lt;br /&gt;HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet  Services\Oracle10g_home&lt;br /&gt;HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet  Services\OraclService&lt;br /&gt;Note that the services control panel will still show the old services until you reboot.&lt;br /&gt;# Delete the Oracle home directory&lt;br /&gt;C:\Oracle&lt;br /&gt;# Delete the Oracle Program Files directory:&lt;br /&gt;C:\Program Files\Oracle&lt;br /&gt;# Delete the Oracle Start Menu shortcuts directory:&lt;br /&gt;C:\Documents and Settings\All Users\Start Menu\Programs\Oracle*&lt;br /&gt;Where * indicates the name of your install.  Look for and remove all Oracle directories from that location.&lt;br /&gt;# Remove Oracle refereces from the path.  To edit your path go to:&lt;br /&gt;Start-&gt;Settings-&gt;Control Panel-&gt;System-&gt;Advanced-&gt;Environment Variables&lt;br /&gt;Edit both of the environment variables user PATH and system PATH.  Remove any Oracle references in them.&lt;br /&gt;# Remove Oracle.DataAccess and any Polic.Oracle files from the GAC which is at:&lt;br /&gt;C:\Windows\assembly\&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8982674345885868";
google_ad_width = 728;
google_ad_height = 15;
google_ad_format = "728x15_0ads_al";
google_ad_channel = "";
google_color_border = "336699";
google_color_bg = "FFFFFF";
google_color_link = "0000FF";
google_color_text = "000000";
google_color_url = "008000";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7419916-115019087255634633?l=krsethur.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krsethur.blogspot.com/feeds/115019087255634633/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7419916&amp;postID=115019087255634633' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/115019087255634633'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/115019087255634633'/><link rel='alternate' type='text/html' href='http://krsethur.blogspot.com/2006/06/uninstalling-oracle-10g-manually-from.html' title='Uninstalling Oracle 10g Manually from Windows XP'/><author><name>S. Krishnamoorthy</name><uri>http://www.blogger.com/profile/01839756663272614286</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7419916.post-115008890915605426</id><published>2006-06-12T10:36:00.000+05:30</published><updated>2007-04-24T11:53:01.532+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='SCJP 5.0'/><title type='text'>Extending Inner Class</title><content type='html'>Another good thread from javaranch.&lt;br /&gt;&lt;code&gt;&lt;br /&gt;    class A{}&lt;br /&gt;    class B extends A{&lt;br /&gt;      public static void main(String args[]){&lt;br /&gt;         B b=new B(); // Line 1&lt;br /&gt;      }&lt;br /&gt;    }&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;At line 1, basically two objects are created.&lt;br /&gt;&lt;br /&gt;First of class A, then of class B. So basically we have two instances here and instance of A act as a subobject which is actually wrapped within intstance of subclass. So, when extending the inner class, an instance of InheritInner must have an instance of Inner class and Inner class always require an instance of Outer class. So, to the constructor of InheritInner which extends Outer.Inner we must also pass the enclosing outer instance of inner class and call the super constructor of enclosing outer instance which will take care of instantiating the inner instance.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;    class Outer {class Inner {}}&lt;br /&gt;     &lt;br /&gt;    public class InheritInner extends Outer.Inner {&lt;br /&gt;     InheritInner(Outer o) {&lt;br /&gt;      o.super();&lt;br /&gt;     }&lt;br /&gt;     public static void main (String[] args){&lt;br /&gt;      Outer o = new Outer(); &lt;br /&gt;                    InheritInner ii = new InheritInner(o);&lt;br /&gt;     }&lt;br /&gt;    }&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;If the inner class was static(nested class), then calling o.super() is not required, since the inner class will be instantiated without an enclosing outer class instance.&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8982674345885868";
google_ad_width = 728;
google_ad_height = 15;
google_ad_format = "728x15_0ads_al";
google_ad_channel = "";
google_color_border = "336699";
google_color_bg = "FFFFFF";
google_color_link = "0000FF";
google_color_text = "000000";
google_color_url = "008000";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7419916-115008890915605426?l=krsethur.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krsethur.blogspot.com/feeds/115008890915605426/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7419916&amp;postID=115008890915605426' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/115008890915605426'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/115008890915605426'/><link rel='alternate' type='text/html' href='http://krsethur.blogspot.com/2006/06/extending-inner-class.html' title='Extending Inner Class'/><author><name>S. Krishnamoorthy</name><uri>http://www.blogger.com/profile/01839756663272614286</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7419916.post-115004437656585497</id><published>2006-06-11T22:14:00.000+05:30</published><updated>2007-04-24T11:53:01.533+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='SCJP 5.0'/><title type='text'>Learnings from javaranch</title><content type='html'>1. Unreachable statement compile error is only for the loop statements(while) and not for conditional statement(if). while(false){..} will cause code not reachable error. But if(false){..} will not cause error. the conditions of course should be compile time constants.&lt;br /&gt;&lt;br /&gt;2. "final variable in for loop". for(final int i:some iterable){print i..} will not error because the enhanced for loop is rewritten in basic for loop as for(int j=0; i &amp;lt; iterator.count;j++){final int i = iterator.next()...} so, the scope of variable is within one loop of the for. Instead within the for loop, if we tried to modify the final variable, it will error.&lt;br /&gt;&lt;br /&gt;3. static variable and static fields are initialized in the order in which they are declared. so in the static block if we assign a variable which is declared down the line to another variable it will error. However this doesn't hold good for static methods. In the static methods, the variable which are declared down the line can be still be accessed and assigned to. Issue only for static initializers.&lt;br /&gt;&lt;br /&gt;4. Strings computed by constant expressions (§15.28) are computed at compile time and then treated as if they were literals. Strings computed by concatenation at run time are newly created and therefore distinct.&lt;br /&gt;&lt;br /&gt;5. a private method in super class and same method name in child class. If some other method in parent class invoked by the child object calls the private method, it is the private method of the super class which is called and not the polymorphic method in child. polymorphic invocation doesn't apply if the super class method is private.&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8982674345885868";
google_ad_width = 728;
google_ad_height = 15;
google_ad_format = "728x15_0ads_al";
google_ad_channel = "";
google_color_border = "336699";
google_color_bg = "FFFFFF";
google_color_link = "0000FF";
google_color_text = "000000";
google_color_url = "008000";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7419916-115004437656585497?l=krsethur.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krsethur.blogspot.com/feeds/115004437656585497/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7419916&amp;postID=115004437656585497' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/115004437656585497'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/115004437656585497'/><link rel='alternate' type='text/html' href='http://krsethur.blogspot.com/2006/06/learnings-from-javaranch.html' title='Learnings from javaranch'/><author><name>S. Krishnamoorthy</name><uri>http://www.blogger.com/profile/01839756663272614286</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7419916.post-114994567138792188</id><published>2006-06-10T18:50:00.000+05:30</published><updated>2007-04-24T11:53:01.533+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='SCJP 5.0'/><title type='text'>Java Thread : notify and notifyAll</title><content type='html'>Had this question : "notify results in a single thread acquiring a lock whereas notifyAll results in all the threads competing for the lock and one of them acquiring it so any way only one thread is able to acquire the lock, so why do we need notfyAll at all."&lt;br /&gt;The answer lies in : Even though in the first case only one thread gets the lock, the problem occurs in that there may be no other threads to notify the other threads which called wait() earlier. So, if we call notifyAll, all the threads will be waken up and will be competing for the lock. So, to compete for the lock, first step is to get woken up by getting a notification from another thread that is going to release the lock. &lt;br /&gt;&lt;br /&gt;Got the above content from this &lt;a href="http://forum.java.sun.com/thread.jspa?threadID=737039&amp;messageID=4233308"&gt;link&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8982674345885868";
google_ad_width = 728;
google_ad_height = 15;
google_ad_format = "728x15_0ads_al";
google_ad_channel = "";
google_color_border = "336699";
google_color_bg = "FFFFFF";
google_color_link = "0000FF";
google_color_text = "000000";
google_color_url = "008000";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7419916-114994567138792188?l=krsethur.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krsethur.blogspot.com/feeds/114994567138792188/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7419916&amp;postID=114994567138792188' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/114994567138792188'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/114994567138792188'/><link rel='alternate' type='text/html' href='http://krsethur.blogspot.com/2006/06/java-thread-notify-and-notifyall.html' title='Java Thread : notify and notifyAll'/><author><name>S. Krishnamoorthy</name><uri>http://www.blogger.com/profile/01839756663272614286</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7419916.post-114932396341935228</id><published>2006-06-03T14:09:00.000+05:30</published><updated>2007-04-24T11:53:01.533+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='SCJP 5.0'/><title type='text'>Resulting type in conditional operator</title><content type='html'>If one expression is a primitive type and the other can be unboxed to become a compatible primitive type, then the unboxing occurs and the expressions are reconsidered.&lt;br /&gt;&lt;br /&gt;If both expressions are numeric primitive types then the resulting type is also a numeric primitive type, obtained by numeric promotion if needed. &lt;br /&gt;&lt;br /&gt;If one expression is an &lt;tt&gt;int&lt;/tt&gt; constant, and the other is &lt;tt&gt;byte&lt;/tt&gt;, &lt;tt&gt;short&lt;/tt&gt;, or &lt;tt&gt;char&lt;/tt&gt;, and the &lt;tt&gt;int&lt;/tt&gt; value can fit in the smaller type, then the resulting type is that smaller type.&lt;br /&gt;&lt;br /&gt;If one of the expressions is a primitive type and the other is a reference type that can't be unboxed to get a compatible value, or both expressions are primitive but incompatible, then the primitive type is boxed so that we have two reference types.&lt;br /&gt;&lt;br /&gt;Given two reference types that are different, the type of the expression is the first common parent type. For example, if both expressions were unrelated class types that implemented &lt;tt&gt;Cloneable&lt;/tt&gt; then &lt;tt&gt;Cloneable&lt;/tt&gt; would be the type of the expression; if one expression was &lt;tt&gt;int&lt;/tt&gt; while the other was &lt;tt&gt;String&lt;/tt&gt;, then &lt;tt&gt;Object&lt;/tt&gt; would be the resulting type.&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8982674345885868";
google_ad_width = 728;
google_ad_height = 15;
google_ad_format = "728x15_0ads_al";
google_ad_channel = "";
google_color_border = "336699";
google_color_bg = "FFFFFF";
google_color_link = "0000FF";
google_color_text = "000000";
google_color_url = "008000";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7419916-114932396341935228?l=krsethur.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krsethur.blogspot.com/feeds/114932396341935228/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7419916&amp;postID=114932396341935228' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/114932396341935228'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/114932396341935228'/><link rel='alternate' type='text/html' href='http://krsethur.blogspot.com/2006/06/resulting-type-in-conditional-operator.html' title='Resulting type in conditional operator'/><author><name>S. Krishnamoorthy</name><uri>http://www.blogger.com/profile/01839756663272614286</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7419916.post-114931920459011053</id><published>2006-06-03T12:46:00.000+05:30</published><updated>2007-04-24T11:53:01.534+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='SCJP 5.0'/><title type='text'>Widen, boxing, varargs</title><content type='html'>widen and then boxing not allowed. But widen and then var-args allowed. This will&lt;br /&gt;be the last priority match. Boxing and then widen will win over widen and then var-args.&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8982674345885868";
google_ad_width = 728;
google_ad_height = 15;
google_ad_format = "728x15_0ads_al";
google_ad_channel = "";
google_color_border = "336699";
google_color_bg = "FFFFFF";
google_color_link = "0000FF";
google_color_text = "000000";
google_color_url = "008000";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7419916-114931920459011053?l=krsethur.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krsethur.blogspot.com/feeds/114931920459011053/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7419916&amp;postID=114931920459011053' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/114931920459011053'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/114931920459011053'/><link rel='alternate' type='text/html' href='http://krsethur.blogspot.com/2006/06/widen-boxing-varargs.html' title='Widen, boxing, varargs'/><author><name>S. Krishnamoorthy</name><uri>http://www.blogger.com/profile/01839756663272614286</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7419916.post-114931810537520050</id><published>2006-06-03T12:31:00.000+05:30</published><updated>2007-04-24T11:53:01.534+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='SCJP 5.0'/><title type='text'>Implicit casting of primitives</title><content type='html'>Implicit casting of primitives happens only in assignment and not in method argument passing. &lt;br /&gt;Short s = 7;(fine)&lt;br /&gt;public void junk(short s){} and junk(7) will error. This is fine because in former case, we know the target type to which the casting is to be done. But in the latter case we don't know the target type to be casted to(in case there are multiple overloaded junk methods).&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8982674345885868";
google_ad_width = 728;
google_ad_height = 15;
google_ad_format = "728x15_0ads_al";
google_ad_channel = "";
google_color_border = "336699";
google_color_bg = "FFFFFF";
google_color_link = "0000FF";
google_color_text = "000000";
google_color_url = "008000";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7419916-114931810537520050?l=krsethur.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krsethur.blogspot.com/feeds/114931810537520050/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7419916&amp;postID=114931810537520050' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/114931810537520050'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/114931810537520050'/><link rel='alternate' type='text/html' href='http://krsethur.blogspot.com/2006/06/implicit-casting-of-primitives.html' title='Implicit casting of primitives'/><author><name>S. Krishnamoorthy</name><uri>http://www.blogger.com/profile/01839756663272614286</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7419916.post-114931583122622245</id><published>2006-06-03T11:53:00.000+05:30</published><updated>2007-04-24T11:53:01.534+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='SCJP 5.0'/><title type='text'>Widening Wins Boxing when alone: Causes confusion combined with Var-args</title><content type='html'>For the following methods:&lt;br /&gt; public void test(long... l)&lt;br /&gt; {&lt;br /&gt;  System.out.println("Widen varargs");&lt;br /&gt; }&lt;br /&gt; public void test(Integer... i)&lt;br /&gt; {&lt;br /&gt;  System.out.println("Boxed and vararg'ed");&lt;br /&gt; }&lt;br /&gt;invocation of int i =5; test(i) will cause confusion to compiler. However if the methods are changed from varargs to normal parameters(long and Integer), then widening method will win over the Boxing parameter method. So, widening wins boxing when alone. But not when combined with var-args.&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8982674345885868";
google_ad_width = 728;
google_ad_height = 15;
google_ad_format = "728x15_0ads_al";
google_ad_channel = "";
google_color_border = "336699";
google_color_bg = "FFFFFF";
google_color_link = "0000FF";
google_color_text = "000000";
google_color_url = "008000";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7419916-114931583122622245?l=krsethur.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krsethur.blogspot.com/feeds/114931583122622245/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7419916&amp;postID=114931583122622245' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/114931583122622245'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/114931583122622245'/><link rel='alternate' type='text/html' href='http://krsethur.blogspot.com/2006/06/widening-wins-boxing-when-alone-causes.html' title='Widening Wins Boxing when alone: Causes confusion combined with Var-args'/><author><name>S. Krishnamoorthy</name><uri>http://www.blogger.com/profile/01839756663272614286</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7419916.post-114904912820704879</id><published>2006-05-31T09:48:00.000+05:30</published><updated>2007-04-24T12:00:06.705+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft IIS'/><title type='text'>About Integrated Windows Authentication in IIS</title><content type='html'>Did a telnet to localhost to get /localstart.asp which is protected by Integrated windows authentication. Response HTTP header is :&lt;br /&gt;HTTP/1.1 401 Access Denied&lt;br /&gt;Server: Microsoft-IIS/5.1&lt;br /&gt;Date: Wed, 31 May 2006 04:09:56 GMT&lt;br /&gt;WWW-Authenticate: Negotiate&lt;br /&gt;WWW-Authenticate: NTLM&lt;br /&gt;Content-Length: 4431&lt;br /&gt;Content-Type: text/html&lt;br /&gt;&lt;br /&gt;Now, the browser is required to authenticate using NTLM. This mode is supported only in IE. So, the same page(localstart.asp) when opened using firebox will retry sending username/password from the popup and will fail. Whereas In IE, it will render the page properly. So, to view the localstart.asp page in browsers other than IE, we can't use Integrated windows authentication. Rather we may use Basic authentication. HTTP Response headers in case of basic authentication:&lt;br /&gt;HTTP/1.1 401 Access Denied&lt;br /&gt;Server: Microsoft-IIS/5.1&lt;br /&gt;Date: Wed, 31 May 2006 04:14:47 GMT&lt;br /&gt;WWW-Authenticate: Basic realm="APPLICATIONS"&lt;br /&gt;Content-Length: 4431&lt;br /&gt;Content-Type: text/html&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8982674345885868";
google_ad_width = 728;
google_ad_height = 15;
google_ad_format = "728x15_0ads_al";
google_ad_channel = "";
google_color_border = "336699";
google_color_bg = "FFFFFF";
google_color_link = "0000FF";
google_color_text = "000000";
google_color_url = "008000";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7419916-114904912820704879?l=krsethur.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krsethur.blogspot.com/feeds/114904912820704879/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7419916&amp;postID=114904912820704879' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/114904912820704879'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/114904912820704879'/><link rel='alternate' type='text/html' href='http://krsethur.blogspot.com/2006/05/about-integrated-windows.html' title='About Integrated Windows Authentication in IIS'/><author><name>S. Krishnamoorthy</name><uri>http://www.blogger.com/profile/01839756663272614286</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7419916.post-114904811762087693</id><published>2006-05-31T09:31:00.000+05:30</published><updated>2007-04-24T12:00:06.706+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft IIS'/><title type='text'>My horrible experience with IIS</title><content type='html'>Tried installing IIS in my XP Pro. After install, initially the localstart.asp is erroring out with HTTP 500 server error. Resolution :&lt;br /&gt;------------------------------------------------------------------------------------&lt;br /&gt;Please make sure that anonymous authentication is not selected for the localstart.asp file as per the instructions in KB Article 251361.&lt;br /&gt;&lt;font color="#0000FF" size=3&gt;&lt;u&gt;http://support.microsoft.com/default.aspx?scid=kb;EN-US;q251361 &lt;/u&gt;&lt;/font&gt;&lt;br /&gt;It does not matter if you are logged on as administrator or not. The RFC says that the client is supposed to try anonymous authentication first, which the client does. If this authentication method is supported (enabled), the client has no reason to try to authenticate, and the anonymous user account specified on the server will be used to run the ASP file. This user account does not have permissions to the metabase, hence it fails with this error message.&lt;br /&gt;------------------------------------------------------------------------------------&lt;br /&gt;So, I unchecked the unanonymous access checkbox. After this I get the HTTP 401.2 unauthorized: Logon. Searched google and found some solutions relating to excluding the localhost from the exceptions list in proxy, adding the webserver program in the windows firewall list. These two solutions didn't work. Solution is that atleast one type of authentication method should have been used :&lt;br /&gt;&lt;font color="#0000FF" size=3&gt;&lt;u&gt;http://support.microsoft.com/default.aspx?scid=kb;en-us;Q253667&amp;sd=tech  &lt;/u&gt;&lt;/font&gt;&lt;br /&gt;Then I used the checkbox "Integrated Windows Authentication". Issue got resolved. Probably a good documentation for IIS was missing or I didn't search properly...&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8982674345885868";
google_ad_width = 728;
google_ad_height = 15;
google_ad_format = "728x15_0ads_al";
google_ad_channel = "";
google_color_border = "336699";
google_color_bg = "FFFFFF";
google_color_link = "0000FF";
google_color_text = "000000";
google_color_url = "008000";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7419916-114904811762087693?l=krsethur.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krsethur.blogspot.com/feeds/114904811762087693/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7419916&amp;postID=114904811762087693' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/114904811762087693'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/114904811762087693'/><link rel='alternate' type='text/html' href='http://krsethur.blogspot.com/2006/05/my-horrible-experience-with-iis.html' title='My horrible experience with IIS'/><author><name>S. Krishnamoorthy</name><uri>http://www.blogger.com/profile/01839756663272614286</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7419916.post-114856107382049895</id><published>2006-05-25T18:14:00.000+05:30</published><updated>2007-04-24T11:53:01.535+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='SCJP 5.0'/><title type='text'>Overloading with var-args: ambiguous match</title><content type='html'>package junk;&lt;br /&gt;&lt;br /&gt;public class Test8{&lt;br /&gt; public static void print(String title) {&lt;br /&gt;  System.out.println("first print");&lt;br /&gt; }&lt;br /&gt; public static void print(String title, String... messages) {&lt;br /&gt;  System.out.println("second print");&lt;br /&gt; }&lt;br /&gt; public static void print(String... messages) {&lt;br /&gt;  System.out.println("third print");&lt;br /&gt; }&lt;br /&gt; public static void main(String... args)&lt;br /&gt; {&lt;br /&gt;  print("Hello");&lt;br /&gt;  print("Hello", "Krishna");&lt;br /&gt;  print("Hello", new String[]{"Krishna"});&lt;br /&gt;  print(new String[]{"Hello", "Krishna"});&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Output:&lt;br /&gt;reference to print is ambiguous, both method print(java.lang.String,java.lang.String...) in junk.Test8 and method print(java.lang.String...) in junk.Test8 match&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8982674345885868";
google_ad_width = 728;
google_ad_height = 15;
google_ad_format = "728x15_0ads_al";
google_ad_channel = "";
google_color_border = "336699";
google_color_bg = "FFFFFF";
google_color_link = "0000FF";
google_color_text = "000000";
google_color_url = "008000";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7419916-114856107382049895?l=krsethur.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krsethur.blogspot.com/feeds/114856107382049895/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7419916&amp;postID=114856107382049895' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/114856107382049895'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/114856107382049895'/><link rel='alternate' type='text/html' href='http://krsethur.blogspot.com/2006/05/overloading-with-var-args-ambiguous.html' title='Overloading with var-args: ambiguous match'/><author><name>S. Krishnamoorthy</name><uri>http://www.blogger.com/profile/01839756663272614286</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7419916.post-114856047612189005</id><published>2006-05-25T18:04:00.000+05:30</published><updated>2007-04-24T11:53:01.535+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='SCJP 5.0'/><title type='text'>Does static initializers loop infinitely if they reference each other in the initialization code?</title><content type='html'>package junk;&lt;br /&gt;&lt;br /&gt;public class Test7{&lt;br /&gt; public static void main(String... args)&lt;br /&gt; {&lt;br /&gt;  System.out.println("x.i = " + X.i);&lt;br /&gt;  System.out.println("x.j = " + Y.j);&lt;br /&gt;  System.out.println("y.i = " + X.i);&lt;br /&gt;  System.out.println("y.j = " + Y.j);&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;class X{&lt;br /&gt; static int i=1;&lt;br /&gt; static int j=2;&lt;br /&gt; static{&lt;br /&gt;  System.out.println("X static : before calling Y");&lt;br /&gt;  i = Y.i;&lt;br /&gt;  System.out.println("X static : after calling Y");&lt;br /&gt; }&lt;br /&gt; static{&lt;br /&gt;  System.out.println("next static block in X : start");&lt;br /&gt;  j = Y.j;&lt;br /&gt;  System.out.println("next static block in X : end");&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;class Y{&lt;br /&gt; static int i=3;&lt;br /&gt; static int j=4;&lt;br /&gt; static{&lt;br /&gt;  System.out.println("Y static : before calling X");&lt;br /&gt;  i = X.i;&lt;br /&gt;  System.out.println("Y static : after calling X");&lt;br /&gt; }&lt;br /&gt; static{&lt;br /&gt;  System.out.println("next static block in Y : start");&lt;br /&gt;  j = X.j;&lt;br /&gt;  System.out.println("next static block in Y : end");&lt;br /&gt; } &lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;output:&lt;br /&gt;X static : before calling Y&lt;br /&gt;Y static : before calling X&lt;br /&gt;Y static : after calling X&lt;br /&gt;next static block in Y : start&lt;br /&gt;next static block in Y : end&lt;br /&gt;X static : after calling Y&lt;br /&gt;next static block in X : start&lt;br /&gt;next static block in X : end&lt;br /&gt;x.i = 1&lt;br /&gt;x.j = 2&lt;br /&gt;y.i = 1&lt;br /&gt;y.j = 2&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8982674345885868";
google_ad_width = 728;
google_ad_height = 15;
google_ad_format = "728x15_0ads_al";
google_ad_channel = "";
google_color_border = "336699";
google_color_bg = "FFFFFF";
google_color_link = "0000FF";
google_color_text = "000000";
google_color_url = "008000";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7419916-114856047612189005?l=krsethur.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krsethur.blogspot.com/feeds/114856047612189005/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7419916&amp;postID=114856047612189005' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/114856047612189005'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/114856047612189005'/><link rel='alternate' type='text/html' href='http://krsethur.blogspot.com/2006/05/does-static-initializers-loop.html' title='Does static initializers loop infinitely if they reference each other in the initialization code?'/><author><name>S. Krishnamoorthy</name><uri>http://www.blogger.com/profile/01839756663272614286</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7419916.post-114723095507027736</id><published>2006-05-10T08:45:00.000+05:30</published><updated>2007-04-24T12:02:03.931+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Others'/><title type='text'>Deleting yahoo account</title><content type='html'>Link for deleting yahoo account : &lt;a href="https://edit.yahoo.com/config/delete_user" title="Delete Yahoo account" target="_blank"&gt;Delete Yahoo account&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8982674345885868";
google_ad_width = 728;
google_ad_height = 15;
google_ad_format = "728x15_0ads_al";
google_ad_channel = "";
google_color_border = "336699";
google_color_bg = "FFFFFF";
google_color_link = "0000FF";
google_color_text = "000000";
google_color_url = "008000";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7419916-114723095507027736?l=krsethur.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krsethur.blogspot.com/feeds/114723095507027736/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7419916&amp;postID=114723095507027736' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/114723095507027736'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/114723095507027736'/><link rel='alternate' type='text/html' href='http://krsethur.blogspot.com/2006/05/deleting-yahoo-account.html' title='Deleting yahoo account'/><author><name>S. Krishnamoorthy</name><uri>http://www.blogger.com/profile/01839756663272614286</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7419916.post-114587112406085216</id><published>2006-04-24T15:02:00.000+05:30</published><updated>2007-04-24T12:10:36.584+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Others'/><title type='text'>Windows XP : To find services associated to OS process</title><content type='html'>Was finding a lot of svchost.exe process getting lauched. To find out the services for each of the scvhost process, following command was helpful.&lt;br /&gt;&lt;b&gt;D:\&gt;tasklist /svc&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Image Name                   PID Services&lt;br /&gt;========================= ====== =============================================&lt;br /&gt;System Idle Process            0 N/A&lt;br /&gt;System                         4 N/A&lt;br /&gt;smss.exe                     820 N/A&lt;br /&gt;csrss.exe                    892 N/A&lt;br /&gt;winlogon.exe                 920 N/A&lt;br /&gt;services.exe                 976 Eventlog, PlugPlay&lt;br /&gt;lsass.exe                    988 Netlogon, PolicyAgent, ProtectedStorage,&lt;br /&gt;                                 SamSs&lt;br /&gt;svchost.exe                 1152 DcomLaunch, TermService&lt;br /&gt;svchost.exe                 1240 RpcSs&lt;br /&gt;svchost.exe                 1376 AudioSrv, CryptSvc, Dhcp, dmserver, ERSvc,&lt;br /&gt;                                 EventSystem, helpsvc, HidServ, lanmanserver,&lt;br /&gt;                                 lanmanworkstation, Messenger, Netman, Nla,&lt;br /&gt;                                 Schedule, seclogon, SENS, SharedAccess,&lt;br /&gt;                                 ShellHWDetection, Themes, TrkWks, W32Time,&lt;br /&gt;                                 winmgmt, wuauserv, WZCSVC&lt;br /&gt;svchost.exe                 1428 Dnscache&lt;br /&gt;svchost.exe                 1616 LmHosts, RemoteRegistry, SSDPSRV, WebClient&lt;br /&gt;spoolsv.exe                 1784 Spooler&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8982674345885868";
google_ad_width = 728;
google_ad_height = 15;
google_ad_format = "728x15_0ads_al";
google_ad_channel = "";
google_color_border = "336699";
google_color_bg = "FFFFFF";
google_color_link = "0000FF";
google_color_text = "000000";
google_color_url = "008000";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7419916-114587112406085216?l=krsethur.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krsethur.blogspot.com/feeds/114587112406085216/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7419916&amp;postID=114587112406085216' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/114587112406085216'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/114587112406085216'/><link rel='alternate' type='text/html' href='http://krsethur.blogspot.com/2006/04/windows-xp-to-find-services-associated.html' title='Windows XP : To find services associated to OS process'/><author><name>S. Krishnamoorthy</name><uri>http://www.blogger.com/profile/01839756663272614286</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7419916.post-114552952390226307</id><published>2006-04-20T16:08:00.000+05:30</published><updated>2007-04-24T12:10:16.553+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java EE'/><title type='text'>Managing state in SOA</title><content type='html'>A &lt;a href="http://www.oracle.com/technology/pub/articles/davydov_soa.html"&gt;good link&lt;/a&gt; on managing state in SOA. Some of the key points:&lt;br /&gt;1. To Manage conversation state, a state identifier needs to maintain following information w.r.t each request-response interaction&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Unique identifier of the Web service client&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Identifier of the Web service conversation originated for that client&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Identifier of the service request within that conversation&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Indicator of the conversation phase between the service requester (client) and service provider (Starting, Continuing, and Ending), which is used by the service for proper state maintenance&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Indicator of the interaction status between the service distribution function of the Web services infrastructure and the invocation interface (very helpful in dynamic invocations with late-binding of Web service interfaces)&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;2. This identifier information can be passed in three ways:&lt;br /&gt;    * Pass the identifier information as an extra parameter in the Web service method; the Web service interface can be designed to accept not only the XML document message, but also to accept additional parameters that represent the state identifier information.&lt;br /&gt;    * Pass the identifier information as a part of the XML document&amp;#8212;the XML document can contain such information embedded within its body.&lt;br /&gt;    * Pass the identifier information in the SOAP message header. &lt;br /&gt;3. First two methods are not preferred as code becomes harder to maintain. &lt;br /&gt;4. Three-step development process:&lt;br /&gt;   1. Design and code the basic service components.&lt;br /&gt;   2. Develop SOAP message handlers.&lt;br /&gt;   3. Construct Web services (expose) out of developed J2EE components.&lt;br /&gt;5. SOAP handlers are for: to handle the insertion of state qualifiers into the standard SOAP message definition. In JAX-RPC services, a handler is represented by a handler class that implements handleRequest() and handleResponse() methods for modifying the request and response message.&lt;br /&gt;6. Create Handlers implementing javax.xml.rpc.handler.Handler and implementing the handleRequest method. The javax.xml.soap.SOAPMessage class is used by the handler to manipulate the SOAP message. A SOAPMessage object contains a SOAPPart object that contains the actual SOAP XML document and a SOAPEnvelope object that is "decomposed" to access SOAP body and header.&lt;br /&gt;7. Get a SoapFactory instance and createElement using it. To the element addTextNode. Finally construct WS using handlers and deploy to AS.&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8982674345885868";
google_ad_width = 728;
google_ad_height = 15;
google_ad_format = "728x15_0ads_al";
google_ad_channel = "";
google_color_border = "336699";
google_color_bg = "FFFFFF";
google_color_link = "0000FF";
google_color_text = "000000";
google_color_url = "008000";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7419916-114552952390226307?l=krsethur.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krsethur.blogspot.com/feeds/114552952390226307/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7419916&amp;postID=114552952390226307' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/114552952390226307'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/114552952390226307'/><link rel='alternate' type='text/html' href='http://krsethur.blogspot.com/2006/04/managing-state-in-soa.html' title='Managing state in SOA'/><author><name>S. Krishnamoorthy</name><uri>http://www.blogger.com/profile/01839756663272614286</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7419916.post-114491205092022912</id><published>2006-04-13T12:37:00.000+05:30</published><updated>2007-04-24T11:54:33.518+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Flats'/><title type='text'>Checklist for buying flat from builder</title><content type='html'>&lt;ol&gt;&lt;br /&gt;&lt;li&gt;Original copy of your agreement with the builder&lt;/li&gt;&lt;br /&gt;&lt;li&gt;7/12 extract or property register card of the land under construction&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Index II extract of your agreement with the builder&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Copy of N.A.(Non Agricultural) permission for the land from the collector&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Search and title report (with the details of documents) for the last 30 years&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Development agreement between the owner of land and the builder&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Copy of order under the Urban land Ceiling Act&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Copy of building plans sanctioned by the competent authority&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Commencement certificate granted by Corporation / Nagar Palika&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Building completion certificate (if available)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;The latest receipts of taxes paid&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Partnership deed or memorandum of association of the builders firm&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8982674345885868";
google_ad_width = 728;
google_ad_height = 15;
google_ad_format = "728x15_0ads_al";
google_ad_channel = "";
google_color_border = "336699";
google_color_bg = "FFFFFF";
google_color_link = "0000FF";
google_color_text = "000000";
google_color_url = "008000";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7419916-114491205092022912?l=krsethur.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krsethur.blogspot.com/feeds/114491205092022912/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7419916&amp;postID=114491205092022912' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/114491205092022912'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/114491205092022912'/><link rel='alternate' type='text/html' href='http://krsethur.blogspot.com/2006/04/checklist-for-buying-flat-from-builder.html' title='Checklist for buying flat from builder'/><author><name>S. Krishnamoorthy</name><uri>http://www.blogger.com/profile/01839756663272614286</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7419916.post-114484778555469397</id><published>2006-04-12T18:46:00.000+05:30</published><updated>2007-04-24T11:54:33.518+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Flats'/><title type='text'>CheckList for purchasing new flat</title><content type='html'>1. Conveyance / Sale deed :  Document by which the title of a property is conveyed by the seller to the purchaser&lt;br /&gt;2. ULC [Urban Land (Ceiling &amp; Regulation) Act] : &lt;br /&gt;3. 7/12 extract is a document, which shows the names of the owners of the property. It contains details such as the Survey numbers, area, date from which the current owner's names were registered as owners. The 7/12 extract is issued by the Tehsildar or the concerned land authorities.&lt;br /&gt;4. Index II - Index II is a document issued by the office of the Sub- Registrar of Assurances. It mainly mentions the names of the sellers &amp; purchasers of a property for which the document is registered.&lt;br /&gt;5. Search report &amp; Title certificate - A Title certificate is issued by an advocate after conducting a  search of the title of the property, which is intended to be purchased. The title certificate would state if the property is unencumbered and has a clear marketable title.(30 years)&lt;br /&gt;6. Non Agricultural (N.A) permission --&lt;br /&gt;7. Development Agreement : entered into by the builder with the landowner. It contains details regarding the terms and conditions on which the landowner has permitted development of his property. This is where the landowner engages a third party (i.e. the developer) to develop and build on their plot of land. This agreement is generally accompanied by a Power of Attorney in favour of the developer. &lt;br /&gt;8. Approved building plans need to be checked necessarily. The plans must be approved by the Municipal Corporation/ Town Planning authority or other concerned authorities like CIDCO, MHADA, HUDCO, Gram Panchayat, etc. as applicable depending on the location of the project. Approved plan of the building along with the number of floors. Check if occupancy certificate has been issued by the municipality authority with the approved of Building Plan.&lt;br /&gt;9. Commencement certificate is given by the Municipal Corporation permitting the developer to begin construction.&lt;br /&gt;10. Completion/occupation certificate is given by the concerned authorities to the developer once the said building is complete in all respects and fit for occupation.&lt;br /&gt;11. Stamp Duty &amp; Registration:&lt;br /&gt;12.  Registration of an agreement&lt;br /&gt;13. Approved layout plan&lt;br /&gt;14. ownership documents.  Check if the land on which the builder is building is his or he has undertaken an agreement with a landlord.  If so, check the title of the land ownership with the help of an advocate.&lt;br /&gt;15. Ensure that urban land ceiling NOC (if applicable) has been obtained or not.&lt;br /&gt;16. NOC from water and electricity authorities also have to be obtained.&lt;br /&gt;17. NOC from lift authorities.	&lt;br /&gt;18. Has your builder/promoter acquired the approvals from Municipal Corporation, Area Development Authorities, Electricity Boards, Water Supply &amp; Sewerage Boards, Airport Area Authorities? &lt;br /&gt;19. Ensure execution of proper sale agreements on your initial payments.&lt;br /&gt;20. IOD (Intimation of disapproval)&lt;br /&gt;21. Encumbrance certificate&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8982674345885868";
google_ad_width = 728;
google_ad_height = 15;
google_ad_format = "728x15_0ads_al";
google_ad_channel = "";
google_color_border = "336699";
google_color_bg = "FFFFFF";
google_color_link = "0000FF";
google_color_text = "000000";
google_color_url = "008000";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7419916-114484778555469397?l=krsethur.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krsethur.blogspot.com/feeds/114484778555469397/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7419916&amp;postID=114484778555469397' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/114484778555469397'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/114484778555469397'/><link rel='alternate' type='text/html' href='http://krsethur.blogspot.com/2006/04/checklist-for-purchasing-new-flat.html' title='CheckList for purchasing new flat'/><author><name>S. Krishnamoorthy</name><uri>http://www.blogger.com/profile/01839756663272614286</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7419916.post-114457391264839842</id><published>2006-04-09T14:41:00.000+05:30</published><updated>2007-04-24T11:54:33.518+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Flats'/><title type='text'>Purchasing a Flat</title><content type='html'>Some of the good links regarding the legalities when purchasing a flat.&lt;br /&gt;&lt;a href="http://www.hdfcrealty.com/general/realtyguide/gl-buyres.asp#4" title="HDFC"&gt; HDFC&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.hiteshestate.com/buying.htm" title="Hitesh"&gt;Hitesh&lt;/a&gt;&lt;br /&gt;&lt;a href="http://sify.com/finance/loans/fullstory.php?id=12999847&amp;vsv=439" title="Sify"&gt;Sify&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.indiainfoline.com/pefi/feat/esti.html" title="India infoline"&gt;India infoline&lt;/a&gt;&lt;br /&gt;&lt;a href="http://news.moneycontrol.com/india/news/propertyexpert/realestatebuilders/belegallyrightwhilebuyingproperty/market/stocks/article/168912" title="MoneyControl"&gt;MoneyControl&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8982674345885868";
google_ad_width = 728;
google_ad_height = 15;
google_ad_format = "728x15_0ads_al";
google_ad_channel = "";
google_color_border = "336699";
google_color_bg = "FFFFFF";
google_color_link = "0000FF";
google_color_text = "000000";
google_color_url = "008000";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7419916-114457391264839842?l=krsethur.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krsethur.blogspot.com/feeds/114457391264839842/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7419916&amp;postID=114457391264839842' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/114457391264839842'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/114457391264839842'/><link rel='alternate' type='text/html' href='http://krsethur.blogspot.com/2006/04/purchasing-flat.html' title='Purchasing a Flat'/><author><name>S. Krishnamoorthy</name><uri>http://www.blogger.com/profile/01839756663272614286</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7419916.post-114449541557162177</id><published>2006-04-08T16:53:00.000+05:30</published><updated>2007-04-24T11:53:01.535+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='SCJP 5.0'/><title type='text'>Java : Widening, Boxing, Var-args</title><content type='html'>1. Widening wins over boxing and var-args&lt;br /&gt;2. Boxing wins over var-args&lt;br /&gt;3. Widening of reference variable depends on inheritance(so, Integer cannot be widened to Long. But, Integer widened to Number).&lt;br /&gt;4. Widen and boxing is not possible&lt;br /&gt;5. Boxing and widening is possible&lt;br /&gt;6. var-args can be combined with either boxing or widening&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8982674345885868";
google_ad_width = 728;
google_ad_height = 15;
google_ad_format = "728x15_0ads_al";
google_ad_channel = "";
google_color_border = "336699";
google_color_bg = "FFFFFF";
google_color_link = "0000FF";
google_color_text = "000000";
google_color_url = "008000";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7419916-114449541557162177?l=krsethur.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krsethur.blogspot.com/feeds/114449541557162177/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7419916&amp;postID=114449541557162177' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/114449541557162177'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/114449541557162177'/><link rel='alternate' type='text/html' href='http://krsethur.blogspot.com/2006/04/java-widening-boxing-var-args.html' title='Java : Widening, Boxing, Var-args'/><author><name>S. Krishnamoorthy</name><uri>http://www.blogger.com/profile/01839756663272614286</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7419916.post-114449303416840940</id><published>2006-04-08T16:13:00.000+05:30</published><updated>2007-04-24T11:53:01.536+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='SCJP 5.0'/><title type='text'>java : order of execution</title><content type='html'>Following code and output to illustrate the order of execution of consutrctor, initialization blocks&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;class InitSuper{&lt;br /&gt;	InitSuper(int x){System.out.println("super: 1-arg const"); }&lt;br /&gt;	InitSuper() { System.out.println("super:no-arg const"); }&lt;br /&gt;	static { System.out.println("super:1st static init"); }&lt;br /&gt;	{ System.out.println("super:1st instance init"); }&lt;br /&gt;	{ System.out.println("super:2nd instance init"); }&lt;br /&gt;	static { System.out.println("super:2nd static init"); }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;class Init extends InitSuper{&lt;br /&gt;	Init(int x) { System.out.println("1-arg const"); }&lt;br /&gt;	Init() { System.out.println("no-arg const"); }&lt;br /&gt;	static { System.out.println("1st static init"); }&lt;br /&gt;	{ System.out.println("1st instance init"); }&lt;br /&gt;	{ System.out.println("2nd instance init"); }&lt;br /&gt;	static { System.out.println("2nd static init"); }&lt;br /&gt;	public static void main(String [] args) {&lt;br /&gt;		new Init();&lt;br /&gt;		new Init(7);&lt;br /&gt;	}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;u&gt;&lt;b&gt;Output&lt;/b&gt;&lt;/u&gt;&lt;br /&gt;super:1st static init&lt;br /&gt;super:2nd static init&lt;br /&gt;1st static init&lt;br /&gt;2nd static init&lt;br /&gt;super:1st instance init&lt;br /&gt;super:2nd instance init&lt;br /&gt;super:no-arg const&lt;br /&gt;1st instance init&lt;br /&gt;2nd instance init&lt;br /&gt;no-arg const&lt;br /&gt;super:1st instance init&lt;br /&gt;super:2nd instance init&lt;br /&gt;super:no-arg const&lt;br /&gt;1st instance init&lt;br /&gt;2nd instance init&lt;br /&gt;1-arg const&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8982674345885868";
google_ad_width = 728;
google_ad_height = 15;
google_ad_format = "728x15_0ads_al";
google_ad_channel = "";
google_color_border = "336699";
google_color_bg = "FFFFFF";
google_color_link = "0000FF";
google_color_text = "000000";
google_color_url = "008000";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7419916-114449303416840940?l=krsethur.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krsethur.blogspot.com/feeds/114449303416840940/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7419916&amp;postID=114449303416840940' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/114449303416840940'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/114449303416840940'/><link rel='alternate' type='text/html' href='http://krsethur.blogspot.com/2006/04/java-order-of-execution.html' title='java : order of execution'/><author><name>S. Krishnamoorthy</name><uri>http://www.blogger.com/profile/01839756663272614286</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7419916.post-114431663050750424</id><published>2006-04-06T15:13:00.000+05:30</published><updated>2007-04-24T11:53:01.536+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='SCJP 5.0'/><title type='text'>Why is character # not considered to be a part of legal identifer for java compiler?</title><content type='html'>Why is the identifier e# not a legal identifier for java compiler? The rules for valid identifier given in K&amp;B book are:&lt;br /&gt;----------------------------------------------------------&lt;br /&gt;1. Identifiers must start with a letter, a currency character ($), or a connecting character such as the underscore ( _ ). Identifiers cannot start with a number!&lt;br /&gt;2. After the first character, identifiers can contain any combination of letters, currency characters, connecting characters, or numbers.&lt;br /&gt;3. In practice, there is no limit to the number of characters an identifier can contain.&lt;br /&gt;4. You can't use a Java keyword as an identifier. Table 1-1 lists all of the Java keywords including one new one for 5.0, enum.&lt;br /&gt;5. Identifiers in Java are case-sensitive; foo and FOO are two different identifiers.&lt;br /&gt;----------------------------------------------------------&lt;br /&gt;Accordingly the identifer e# doesn't come in any of the above 5 category. &lt;br /&gt;So, why is it not a legal identifier?&lt;br /&gt;&lt;br /&gt;Replies:&lt;br /&gt;1. I guess they forgot to add that any special characters other than the currency symbols are not allowed.&lt;br /&gt;&lt;br /&gt;2.  The # is not a letter! By letter we should consider A to z, I guess...&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8982674345885868";
google_ad_width = 728;
google_ad_height = 15;
google_ad_format = "728x15_0ads_al";
google_ad_channel = "";
google_color_border = "336699";
google_color_bg = "FFFFFF";
google_color_link = "0000FF";
google_color_text = "000000";
google_color_url = "008000";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7419916-114431663050750424?l=krsethur.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krsethur.blogspot.com/feeds/114431663050750424/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7419916&amp;postID=114431663050750424' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/114431663050750424'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/114431663050750424'/><link rel='alternate' type='text/html' href='http://krsethur.blogspot.com/2006/04/why-is-character-not-considered-to-be.html' title='Why is character # not considered to be a part of legal identifer for java compiler?'/><author><name>S. Krishnamoorthy</name><uri>http://www.blogger.com/profile/01839756663272614286</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7419916.post-114362028080641987</id><published>2006-03-29T13:48:00.000+05:30</published><updated>2007-04-24T11:58:33.187+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Internet Explorer'/><title type='text'>Problem with applet in IE7</title><content type='html'>Had problems with loading a applet(that tries to connect using socket) in IE7 using JRE1.5. It used to work in IE6. Was getting the socketPermission error although the java.policy file in the user home had socketPermission for accept, connect, resolve. Then I added the same socketPermission entry in the java.policy file under the security folder of the JRE installed directory. It then worked. Thus, IE7 doesn't check the java.policy file present in the user home. Instead it checks the same present in the JRe installed directory. Bug or enhancement in IE7?&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8982674345885868";
google_ad_width = 728;
google_ad_height = 15;
google_ad_format = "728x15_0ads_al";
google_ad_channel = "";
google_color_border = "336699";
google_color_bg = "FFFFFF";
google_color_link = "0000FF";
google_color_text = "000000";
google_color_url = "008000";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7419916-114362028080641987?l=krsethur.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krsethur.blogspot.com/feeds/114362028080641987/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7419916&amp;postID=114362028080641987' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/114362028080641987'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/114362028080641987'/><link rel='alternate' type='text/html' href='http://krsethur.blogspot.com/2006/03/problem-with-applet-in-ie7.html' title='Problem with applet in IE7'/><author><name>S. Krishnamoorthy</name><uri>http://www.blogger.com/profile/01839756663272614286</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7419916.post-114355957805661849</id><published>2006-03-28T20:56:00.000+05:30</published><updated>2007-04-24T11:53:55.363+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='SCJP 5.0'/><title type='text'>Java Tips</title><content type='html'>Cases when a closing curly brace is followed by semi-colon &lt;br /&gt;&lt;ol&gt;&lt;li&gt;anonymous inner class &lt;/li&gt;&lt;li&gt;array initialization using {}&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8982674345885868";
google_ad_width = 728;
google_ad_height = 15;
google_ad_format = "728x15_0ads_al";
google_ad_channel = "";
google_color_border = "336699";
google_color_bg = "FFFFFF";
google_color_link = "0000FF";
google_color_text = "000000";
google_color_url = "008000";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7419916-114355957805661849?l=krsethur.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krsethur.blogspot.com/feeds/114355957805661849/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7419916&amp;postID=114355957805661849' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/114355957805661849'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/114355957805661849'/><link rel='alternate' type='text/html' href='http://krsethur.blogspot.com/2006/03/java-tips.html' title='Java Tips'/><author><name>S. Krishnamoorthy</name><uri>http://www.blogger.com/profile/01839756663272614286</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7419916.post-114309207569737023</id><published>2006-03-23T11:04:00.000+05:30</published><updated>2007-04-24T11:53:55.364+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='SCJP 5.0'/><title type='text'>Difference between Stored Procedure and Function</title><content type='html'>Stored Procedure :supports deffered name resoultion Example while writing a stored procedure that uses table named tabl1 and tabl2 etc..but actually not exists in database is allowed only in during creation but runtime throws error&lt;br /&gt;Function wont support deffered name resolution. Stored procedure returns always integer value by default zero. where as function return type could be scalar or table or table values(SQL Server).Stored Procedure is pre compiled exuction plan where as functions are not.&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8982674345885868";
google_ad_width = 728;
google_ad_height = 15;
google_ad_format = "728x15_0ads_al";
google_ad_channel = "";
google_color_border = "336699";
google_color_bg = "FFFFFF";
google_color_link = "0000FF";
google_color_text = "000000";
google_color_url = "008000";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7419916-114309207569737023?l=krsethur.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krsethur.blogspot.com/feeds/114309207569737023/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7419916&amp;postID=114309207569737023' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/114309207569737023'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/114309207569737023'/><link rel='alternate' type='text/html' href='http://krsethur.blogspot.com/2006/03/difference-between-stored-procedure.html' title='Difference between Stored Procedure and Function'/><author><name>S. Krishnamoorthy</name><uri>http://www.blogger.com/profile/01839756663272614286</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7419916.post-114304663811077680</id><published>2006-03-22T22:27:00.000+05:30</published><updated>2007-04-24T11:53:55.364+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='SCJP 5.0'/><title type='text'>Bug in asList method of class Arrays - Java Tiger: Reply</title><content type='html'>Not a bug, but I agree it's very surprising. Look at the declaration of asList():&lt;br /&gt;&lt;br /&gt;public static &amp;lt;T&amp;gt; List&amp;lt;T&amp;gt; asList(T... a)&lt;br /&gt;&lt;br /&gt;"T", like all generic type parameters, has to be a reference type. If you pass an array of reference types, then T becomes the type of that reference, and the individual array elements become the arguments to the function.&lt;br /&gt;&lt;br /&gt;But if you pass a primitive array to this function, "T" is assigned the primitive array type itself -- int[], in your example -- and the function sees a single argument of that type. It has to be so, because T can't be assigned to type "int". That "1" is therefore indicating that the function saw the array as a single unit.&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8982674345885868";
google_ad_width = 728;
google_ad_height = 15;
google_ad_format = "728x15_0ads_al";
google_ad_channel = "";
google_color_border = "336699";
google_color_bg = "FFFFFF";
google_color_link = "0000FF";
google_color_text = "000000";
google_color_url = "008000";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7419916-114304663811077680?l=krsethur.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krsethur.blogspot.com/feeds/114304663811077680/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7419916&amp;postID=114304663811077680' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/114304663811077680'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/114304663811077680'/><link rel='alternate' type='text/html' href='http://krsethur.blogspot.com/2006/03/bug-in-aslist-method-of-class-arrays_22.html' title='Bug in asList method of class Arrays - Java Tiger: Reply'/><author><name>S. Krishnamoorthy</name><uri>http://www.blogger.com/profile/01839756663272614286</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7419916.post-114304553988290018</id><published>2006-03-22T22:08:00.000+05:30</published><updated>2007-04-24T11:53:55.364+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='SCJP 5.0'/><title type='text'>Bug in asList method of class Arrays - Java Tiger</title><content type='html'>asList method of Arrays returns a list. This list corresponding to the primitive array has a odd behaviour. E.g.,&lt;br /&gt;&lt;br /&gt;String[] sa = {"one", "two", "three", "four"};&lt;br /&gt;List sList = Arrays.asList(sa);&lt;br /&gt;System.out.println("size of list : " + sList.size());&lt;br /&gt;&lt;br /&gt;This prints the size as 4. This is fine. However, the same code for primitive array produces the size as always 1.&lt;br /&gt;&lt;br /&gt;int[] ia = {1,2,3};&lt;br /&gt;List iList = Arrays.asList(ia);&lt;br /&gt;System.out.println("size of primitive list : " + iList.size());&lt;br /&gt;&lt;br /&gt;This prints the size as 1. Is this a bug?&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8982674345885868";
google_ad_width = 728;
google_ad_height = 15;
google_ad_format = "728x15_0ads_al";
google_ad_channel = "";
google_color_border = "336699";
google_color_bg = "FFFFFF";
google_color_link = "0000FF";
google_color_text = "000000";
google_color_url = "008000";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7419916-114304553988290018?l=krsethur.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krsethur.blogspot.com/feeds/114304553988290018/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7419916&amp;postID=114304553988290018' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/114304553988290018'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/114304553988290018'/><link rel='alternate' type='text/html' href='http://krsethur.blogspot.com/2006/03/bug-in-aslist-method-of-class-arrays.html' title='Bug in asList method of class Arrays - Java Tiger'/><author><name>S. Krishnamoorthy</name><uri>http://www.blogger.com/profile/01839756663272614286</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7419916.post-114260118310998509</id><published>2006-03-17T18:43:00.000+05:30</published><updated>2007-04-24T12:02:29.055+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><title type='text'>Making trace files available</title><content type='html'>There is an undocumented parameter _trace_files_public that if set to true changes the file permissions in the user_dump_dest directory when trace files are created to allow everyone to read them. This parameter can be checked with the following SQL. You can set this parameter by adding the following line to the init.ora file: &lt;br /&gt;# allow trace files to be created with public permissions&lt;br /&gt;_trace_files_public=true&lt;br /&gt;SQL to check the value of this parameter:&lt;br /&gt;SQL&gt; select x.ksppinm name,y.ksppstvl value&lt;br /&gt;from sys.x$ksppi x,sys.x$ksppcv y&lt;br /&gt;where x.inst_id=userenv('Instance')&lt;br /&gt;and y.inst_id=userenv('Instance')&lt;br /&gt;and x.indx=y.indx&lt;br /&gt;and x.ksppinm='_trace_files_public';&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8982674345885868";
google_ad_width = 728;
google_ad_height = 15;
google_ad_format = "728x15_0ads_al";
google_ad_channel = "";
google_color_border = "336699";
google_color_bg = "FFFFFF";
google_color_link = "0000FF";
google_color_text = "000000";
google_color_url = "008000";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7419916-114260118310998509?l=krsethur.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krsethur.blogspot.com/feeds/114260118310998509/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7419916&amp;postID=114260118310998509' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/114260118310998509'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/114260118310998509'/><link rel='alternate' type='text/html' href='http://krsethur.blogspot.com/2006/03/making-trace-files-available.html' title='Making trace files available'/><author><name>S. Krishnamoorthy</name><uri>http://www.blogger.com/profile/01839756663272614286</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7419916.post-114240240520078138</id><published>2006-03-15T11:30:00.000+05:30</published><updated>2007-04-24T12:02:29.055+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><title type='text'>Who eats my Temp Space</title><content type='html'>Many a times we get the error : "TEMP SEGMENT MAXIMUM EXTENT EXCEEDED". The following script will provide a list of users and which processes occupy space in the TEMP tablespace.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;SET pagesize 10000; &lt;br /&gt;    SET linesize 133; &lt;br /&gt;    column tablespace format a15 heading 'Tablespace Name'; &lt;br /&gt;    column segfile# format 9,999 heading 'File|ID'; &lt;br /&gt;    column spid format 9,999 heading 'Unix|ID'; &lt;br /&gt;    column segblk# format 999,999,999 heading 'Block|ID'; &lt;br /&gt;    column size_mb format 999,999,990.00 heading "Mbytes|Used"; &lt;br /&gt;    column username format a15; &lt;br /&gt;    column program format a15; &lt;br /&gt;SELECT &lt;br /&gt;    b.tablespace,&lt;br /&gt;    b.segfile#,&lt;br /&gt;    b.segblk#,&lt;br /&gt;    round(((b.blocks*p.value)/1024/1024),2 ) size_mb ,&lt;br /&gt;    a.sid,&lt;br /&gt;    a.serial#,&lt;br /&gt;    a.username,&lt;br /&gt;    a.osuser,&lt;br /&gt;    a.program,&lt;br /&gt;    a.status &lt;br /&gt;FROM v$session a ,&lt;br /&gt;    v$sort_usage b ,&lt;br /&gt;    v$process c ,&lt;br /&gt;    v$parameter p &lt;br /&gt;WHERE p.name='db_block_size' &lt;br /&gt;    AND a.saddr = b.session_addr &lt;br /&gt;    AND a.paddr=c.addr &lt;br /&gt;ORDER BY b.tablespace,&lt;br /&gt;    b.segfile#,&lt;br /&gt;    b.segblk#,&lt;br /&gt;    b.blocks &lt;br /&gt;/&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8982674345885868";
google_ad_width = 728;
google_ad_height = 15;
google_ad_format = "728x15_0ads_al";
google_ad_channel = "";
google_color_border = "336699";
google_color_bg = "FFFFFF";
google_color_link = "0000FF";
google_color_text = "000000";
google_color_url = "008000";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7419916-114240240520078138?l=krsethur.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krsethur.blogspot.com/feeds/114240240520078138/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7419916&amp;postID=114240240520078138' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/114240240520078138'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/114240240520078138'/><link rel='alternate' type='text/html' href='http://krsethur.blogspot.com/2006/03/who-eats-my-temp-space_15.html' title='Who eats my Temp Space'/><author><name>S. Krishnamoorthy</name><uri>http://www.blogger.com/profile/01839756663272614286</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7419916.post-114190903941659226</id><published>2006-03-09T18:27:00.000+05:30</published><updated>2007-04-24T12:03:12.868+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Encoding'/><title type='text'>Confirmed my understanding</title><content type='html'>In the earlier blog, the character not being displayed properly by the browser is the browser issue and the code to deal with supplementary character is correct. The link http://www.unicode.org/cgi-bin/GetUnihanData.pl?codepoint=10177 shows the character that will be displayed in browser(which is the one present in xml file when opened by browser). So, to work with supplementary characters, create new String by passing character[] containing the low and high surrogate pairs or the byte[] specifying the encoding. The byte[] can for any code point can be obtained using the link :&lt;br /&gt;&lt;a href="http://www.unicode.org/cgi-bin/GetUnihanData.pl?codepoint=10177"&gt;Byte for codepoint&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8982674345885868";
google_ad_width = 728;
google_ad_height = 15;
google_ad_format = "728x15_0ads_al";
google_ad_channel = "";
google_color_border = "336699";
google_color_bg = "FFFFFF";
google_color_link = "0000FF";
google_color_text = "000000";
google_color_url = "008000";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7419916-114190903941659226?l=krsethur.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krsethur.blogspot.com/feeds/114190903941659226/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7419916&amp;postID=114190903941659226' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/114190903941659226'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/114190903941659226'/><link rel='alternate' type='text/html' href='http://krsethur.blogspot.com/2006/03/confirmed-my-understanding.html' title='Confirmed my understanding'/><author><name>S. Krishnamoorthy</name><uri>http://www.blogger.com/profile/01839756663272614286</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7419916.post-114190593449799452</id><published>2006-03-09T17:35:00.000+05:30</published><updated>2007-04-24T12:03:12.868+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Encoding'/><title type='text'>Some code to illustrate the unicode support by Character class</title><content type='html'>public class UnicodeTest{&lt;br /&gt;	public static void main(String... args) throws IOException&lt;br /&gt;	{&lt;br /&gt;		System.out.println("is valid codepoint : " + Character.isValidCodePoint(0x10FFFF));&lt;br /&gt;		System.out.println("is valid codepoint : " + Character.isValidCodePoint(0x20FFFF));&lt;br /&gt;		int cp = 0x10177;&lt;br /&gt;		System.out.println("is valid codepoint : " + Character.isValidCodePoint(cp));&lt;br /&gt;		char[] ch = new char[2];&lt;br /&gt;		ch = Character.toChars(cp);&lt;br /&gt;		int low = ch[0];&lt;br /&gt;		int high = ch[1];&lt;br /&gt;		System.out.println("Low Surrogate Pair : " + low + " Hexadecimal : " + Integer.toHexString(low) + " Binary String : " + Integer.toBinaryString(low));&lt;br /&gt;		System.out.println("High Surrogate Pair : " + high + " Hexadecimal : " + Integer.toHexString(high) + " Binary String : " + Integer.toBinaryString(high));&lt;br /&gt;		String st = new String(ch);&lt;br /&gt;		BufferedWriter out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("krishna.xml"), "UTF-8"));&lt;br /&gt;		out.write("&lt;?xml version=\"1.0\" encoding=\"UTF-8\" ?&gt;");&lt;br /&gt;		out.write("&lt;krishna&gt;");&lt;br /&gt;		out.write(st);&lt;br /&gt;		out.write("&lt;/krishna&gt;");	&lt;br /&gt;		out.close();&lt;br /&gt;&lt;br /&gt;	}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;In the above case, the supplementary character written in xml was not the one it is intended to be. Don't know whether it is the limitation of browser to display the supplementary characters or anything wrong in the way a supplementary character be handled in java code.&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8982674345885868";
google_ad_width = 728;
google_ad_height = 15;
google_ad_format = "728x15_0ads_al";
google_ad_channel = "";
google_color_border = "336699";
google_color_bg = "FFFFFF";
google_color_link = "0000FF";
google_color_text = "000000";
google_color_url = "008000";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7419916-114190593449799452?l=krsethur.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krsethur.blogspot.com/feeds/114190593449799452/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7419916&amp;postID=114190593449799452' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/114190593449799452'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/114190593449799452'/><link rel='alternate' type='text/html' href='http://krsethur.blogspot.com/2006/03/some-code-to-illustrate-unicode_09.html' title='Some code to illustrate the unicode support by Character class'/><author><name>S. Krishnamoorthy</name><uri>http://www.blogger.com/profile/01839756663272614286</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7419916.post-114190067012734313</id><published>2006-03-09T16:07:00.000+05:30</published><updated>2007-04-24T12:03:12.869+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Encoding'/><title type='text'>Some more understandings on java unicode support</title><content type='html'>From the start, java had used UTF-16 encoding for encoding the characters. Thus, in the earlier stages when the unicode character set was limited to 16 bits and hence was given full support by java character which was using the utf-16 encoding. Once the unicode was extended to support till the range U+10FFFF, the earlier UTF-16 encoded characters cannot represent characters more than U+FFFF. Hence, in J2se5, support was provided through the Character class. So, the primitive char still supports only the characters till code point: UTF+FFFF. The Java 2 platform uses the UTF-16 representation in char  arrays and in the String and StringBuffer  classes. In this representation, supplementary characters are represented as a pair of char values, the first from the high-surrogates range, (\uD800-\uDBFF), the second from the low-surrogates range (\uDC00-\uDFFF).&lt;br /&gt;&lt;br /&gt;A char value, therefore, represents Basic Multilingual Plane (BMP) code points, including the surrogate code points, or code units of the UTF-16 encoding. An int value represents all Unicode code points, including supplementary code points. The lower (least significant) 21 bits of int are used to represent Unicode code points and the upper (most significant) 11 bits must be zero. Unless otherwise specified, the behavior with respect to supplementary characters and surrogate char values is as follows:&lt;br /&gt;&lt;br /&gt;    * The methods that only accept a char value cannot support supplementary characters. They treat char values from the surrogate ranges as undefined characters. For example, Character.isLetter('\uD840') returns false, even though this specific value if followed by any low-surrogate value in a string would represent a letter.&lt;br /&gt;    * The methods that accept an int value support all Unicode characters, including supplementary characters. For example, Character.isLetter(0x2F81A) returns true because the code point value represents a letter (a CJK ideograph).&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8982674345885868";
google_ad_width = 728;
google_ad_height = 15;
google_ad_format = "728x15_0ads_al";
google_ad_channel = "";
google_color_border = "336699";
google_color_bg = "FFFFFF";
google_color_link = "0000FF";
google_color_text = "000000";
google_color_url = "008000";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7419916-114190067012734313?l=krsethur.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krsethur.blogspot.com/feeds/114190067012734313/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7419916&amp;postID=114190067012734313' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/114190067012734313'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/114190067012734313'/><link rel='alternate' type='text/html' href='http://krsethur.blogspot.com/2006/03/some-more-understandings-on-java.html' title='Some more understandings on java unicode support'/><author><name>S. Krishnamoorthy</name><uri>http://www.blogger.com/profile/01839756663272614286</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7419916.post-114189772618027843</id><published>2006-03-09T15:18:00.000+05:30</published><updated>2007-04-24T12:03:12.869+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Encoding'/><title type='text'>Back to Unicode support in java</title><content type='html'>Again got confused in unicode. Some of the terms used  are:&lt;br /&gt;&lt;b&gt;&lt;u&gt;1. Coded Character Set&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;A character Set(collection of characters) where each character has been assigned a unique number. E.g., Unicode character set, where every character is assigned a hexadecimal number.&lt;br /&gt;&lt;b&gt;&lt;u&gt;2. Code Points&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;The numbers that can be used in a coded character set. Valid code points for Unicode character set is : U+0000 to U+10FFFF (Unicode :4 standard)&lt;br /&gt;&lt;b&gt;&lt;u&gt;3. Supplementary Characters&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;Characters that could not be represented in the original 16-bit design of Unicode. U+0000 to U+FFFF are referred to as Base Multilingual Plane(BMP) and the others are supplementary characters.&lt;br /&gt;&lt;b&gt;&lt;u&gt;4. Character Encoding Scheme&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;Mapping from the numbers of one or more coded character sets to sequences of one or more fixed-width code units. e.g., UTF-32, UTF-16, and UTF-8 &lt;br /&gt;&lt;b&gt;&lt;u&gt;4. Character Encoding&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;Mapping from a set of characters to sequences of code units. e.g., UTF-8, ISO-8859-1, GB18030, Shift_JIS.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;&lt;b&gt;UTF-16&lt;/b&gt;&lt;/u&gt;&lt;br /&gt;UTF-16 uses sequences of one or two unsigned 16-bit code units to encode Unicode code points. Values U+0000 to U+FFFF are encoded in one 16-bit unit with the same value. Supplementary characters are encoded in two code units, the first from the high-surrogates range (U+D800 to U+DBFF), the second from the low-surrogates range (U+DC00 to U+DFFF). This may seem similar in concept to multi-byte encodings, but there is an important difference: The values U+D800 to U+DFFF are reserved for use in UTF-16; no characters are assigned to them as code points. This means, software can tell for each individual code unit in a string whether it represents a one-unit character or whether it is the first or second unit of a two-unit character. This is a significant improvement over some traditional multi-byte character encodings, where the byte value 0x41 could mean the letter "A" or be the second byte of a two-byte character.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8982674345885868";
google_ad_width = 728;
google_ad_height = 15;
google_ad_format = "728x15_0ads_al";
google_ad_channel = "";
google_color_border = "336699";
google_color_bg = "FFFFFF";
google_color_link = "0000FF";
google_color_text = "000000";
google_color_url = "008000";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7419916-114189772618027843?l=krsethur.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krsethur.blogspot.com/feeds/114189772618027843/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7419916&amp;postID=114189772618027843' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/114189772618027843'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/114189772618027843'/><link rel='alternate' type='text/html' href='http://krsethur.blogspot.com/2006/03/back-to-unicode-support-in-java.html' title='Back to Unicode support in java'/><author><name>S. Krishnamoorthy</name><uri>http://www.blogger.com/profile/01839756663272614286</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7419916.post-114165477035318806</id><published>2006-03-06T19:49:00.000+05:30</published><updated>2007-04-24T11:53:55.365+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='SCJP 5.0'/><title type='text'>Least Integer to lose precision when converted to Floating point</title><content type='html'>The first integer at which assigning to float and casting back to int loses precision is : 16777217. The following code when run, gives the output as:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;    class Q44 &lt;br /&gt;    	   { &lt;br /&gt;    	      public static void main(String[] args) &lt;br /&gt;    	      { &lt;br /&gt;    		 int i=0, y;&lt;br /&gt;    		 float j=0;&lt;br /&gt;    		 while(true)&lt;br /&gt;    		 {&lt;br /&gt;    			 j = i;&lt;br /&gt;    			 y=(int)j;&lt;br /&gt;    			 if( (y-i) != 0)&lt;br /&gt;    			 {&lt;br /&gt;    				 System.out.println("i = " + i);&lt;br /&gt;    				 break;&lt;br /&gt;    			 }&lt;br /&gt;    			 i++;&lt;br /&gt;    		 }&lt;br /&gt;    		 i = -1;&lt;br /&gt;    		 while(true)&lt;br /&gt;    		 {&lt;br /&gt;    			 j = i;&lt;br /&gt;    			 y=(int)j;&lt;br /&gt;    			 if( (y-i) != 0)&lt;br /&gt;    			 {&lt;br /&gt;    				 System.out.println("i = " + i);&lt;br /&gt;    				 break;&lt;br /&gt;    			 }&lt;br /&gt;    			 i--;&lt;br /&gt;    		 }		 &lt;br /&gt;    			 &lt;br /&gt;    			 &lt;br /&gt;    	     } &lt;br /&gt;    	   }    &lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;i = 16777217&lt;br /&gt;i = -16777217&lt;br /&gt;&lt;br /&gt;Floating points are first converted to form : N = &amp;plusmn; (1.b1b2b3b4 ...)2 x 2+E&lt;br /&gt;The left most one is not stored(always 1). The bits b1b2b3 etc.,(upto 23 bits) is what goes into the mantissa part. Hence, the first maximum bit for an integer can be 24 successive one's. (23 One's for mantissa and one implicit 1). 24 successive one corresponds to the number : 16777215. The next number is 16777216 for which the bit pattern is : 1000000000000000000000000&lt;br /&gt;ie., one followed by 24 zero. So, even though the 24th zero is not stored, precision is not lost. Because when we convert back it is restored. So, the maximum integer without losing precision that can be converted back from float is now : 16777216&lt;br /&gt;&lt;br /&gt;Now, if we consider the next number (16777217) for which the bit pattern is : 1000000000000000000000001. This has 1 followed by 23 zeros and then a 1. Because of 1 in the 24th bit, the 23rd bit will be rounded to 1 and the first precision loss comes for this number. Thus, the number 16777217 is the first integer number which when converted to float and converted back to integer will lose the precision as proved by the output of the above code.&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8982674345885868";
google_ad_width = 728;
google_ad_height = 15;
google_ad_format = "728x15_0ads_al";
google_ad_channel = "";
google_color_border = "336699";
google_color_bg = "FFFFFF";
google_color_link = "0000FF";
google_color_text = "000000";
google_color_url = "008000";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7419916-114165477035318806?l=krsethur.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krsethur.blogspot.com/feeds/114165477035318806/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7419916&amp;postID=114165477035318806' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/114165477035318806'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/114165477035318806'/><link rel='alternate' type='text/html' href='http://krsethur.blogspot.com/2006/03/least-integer-to-lose-precision-when.html' title='Least Integer to lose precision when converted to Floating point'/><author><name>S. Krishnamoorthy</name><uri>http://www.blogger.com/profile/01839756663272614286</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7419916.post-114121568239681378</id><published>2006-03-01T17:51:00.000+05:30</published><updated>2007-04-24T12:07:57.680+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Others'/><title type='text'>.Net Framework</title><content type='html'>Was feeling lazy to work today. Hence, looked at .net framework programming......Some highlights of points learnt for future reference&lt;br /&gt;1. .Net currently supports around 20 languages to be compiled into IL(Intermediate Language) format.&lt;br /&gt;2. For shift from J2EE to dot net, c# can be a better option.&lt;br /&gt;3. A simple helloworld C# code is:&lt;br /&gt; 	 class App{&lt;br /&gt;  public static void Main(){&lt;br /&gt;    System.Console.WriteLine("Hello World!");&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;4. To compile the above code, type "csc filename.cs". This generates the filename.exe. (for vb, use vbc and for javascript, jsc)&lt;br /&gt;5. Hierarchy : Managed Executable -&gt; CLR(JIT compilation) -&gt; OS&lt;br /&gt;6. CLR is similar to the other execution engine like JVM for J2EE. The CLR supplies memory management, type safety, code verifiability, thread management and security. &lt;br /&gt;7. Important points are&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Managed Code is never interpreted&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Managed code doesn't run in virtual machine.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;8. CIL(Common IL) is the high level assembly language includes instructions for advanced programming concepts as instantiating objects or calling virtual functions. &lt;br /&gt;9. The CLR translates these and every other IL instruction into a native machine language instruction at runtime, and then executes the code natively. &lt;br /&gt;10. Metadata describes class definitions, method signatures, parameter types and return values. &lt;br /&gt;11. The exe generated out of compiling the managed code contains the metadata and the IL. We can use the IL disassemebler(ILDASM) to view the structure of the managed exe.&lt;br /&gt;12. At runtime, this exe is JIT compiled by the CLR and converted into the machine language instructions.&lt;br /&gt;13. Some of the benchmarck results shows dot net executed code is 2-3 times faster than the J2EE...&lt;br /&gt;&lt;br /&gt;&lt;b&gt;JIT COMPILATION&lt;/b&gt;&lt;u&gt;&lt;/u&gt;&lt;br /&gt;The first time that a managed executable references a class or type (such as a structure, interface, enumerated type or primitive type) the system must load the code module or managed module that implements the type. At the point of loading, the JIT compiler creates method stubs in native machine language for every member method in the newly loaded class. These stubs include nothing but a jump into a special function in the JIT compiler.&lt;br /&gt;&lt;br /&gt;Once the stub functions are created, the system fixes up any method calls in the referencing code to point to the new stub functions. At this time no JIT compilation of the type's code has occurred. However, if a managed application references a managed type, it is likely to call methods on this type (in fact it is almost inevitable).&lt;br /&gt;&lt;br /&gt;When one of the stub functions is called the stub causes execution to jump into the JIT compiler. The JIT compiler looks up the source code (IL and metadata) in the associated managed module, and builds native machine code for the function on the fly. Then, it replaces the stub function with a jump to the newly JIT compiled function. The next time this same method is called in source code, it will be executed full speed without any need for compilation or extra steps.&lt;br /&gt;&lt;br /&gt;The good thing about this approach is that the system never wastes time JIT compiling methods that won't be called by this run of your application.&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8982674345885868";
google_ad_width = 728;
google_ad_height = 15;
google_ad_format = "728x15_0ads_al";
google_ad_channel = "";
google_color_border = "336699";
google_color_bg = "FFFFFF";
google_color_link = "0000FF";
google_color_text = "000000";
google_color_url = "008000";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7419916-114121568239681378?l=krsethur.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krsethur.blogspot.com/feeds/114121568239681378/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7419916&amp;postID=114121568239681378' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/114121568239681378'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/114121568239681378'/><link rel='alternate' type='text/html' href='http://krsethur.blogspot.com/2006/03/net-framework_01.html' title='.Net Framework'/><author><name>S. Krishnamoorthy</name><uri>http://www.blogger.com/profile/01839756663272614286</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7419916.post-113896983308962485</id><published>2006-02-03T18:00:00.000+05:30</published><updated>2007-04-24T12:07:21.051+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='ADF'/><title type='text'>ADF active data model</title><content type='html'>This &lt;a href="http://radio.weblogs.com/0118231/stories/2006/01/26/theAdfBusinessComponentsActiveDataModel.html"&gt;link &lt;/a&gt;explains how a change to model is automatically notified to client in case of ADFBC,  so that there is no need to transfer the data back and forth.&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8982674345885868";
google_ad_width = 728;
google_ad_height = 15;
google_ad_format = "728x15_0ads_al";
google_ad_channel = "";
google_color_border = "336699";
google_color_bg = "FFFFFF";
google_color_link = "0000FF";
google_color_text = "000000";
google_color_url = "008000";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7419916-113896983308962485?l=krsethur.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krsethur.blogspot.com/feeds/113896983308962485/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7419916&amp;postID=113896983308962485' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/113896983308962485'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/113896983308962485'/><link rel='alternate' type='text/html' href='http://krsethur.blogspot.com/2006/02/adf-active-data-model.html' title='ADF active data model'/><author><name>S. Krishnamoorthy</name><uri>http://www.blogger.com/profile/01839756663272614286</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7419916.post-113470516760743215</id><published>2005-12-16T09:22:00.000+05:30</published><updated>2007-04-24T12:03:12.870+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='SCJP 5.0'/><category scheme='http://www.blogger.com/atom/ns#' term='Encoding'/><title type='text'>Java Unicode Support</title><content type='html'>Check the JSR-204 for java unicode support : &lt;a href="http://jcp.org/aboutJava/communityprocess/first/jsr204/index.html" &gt;JSR-204&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Supplementary Character Support Approach&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Use the primitive type int to represent code points in low-level APIs, such as the static methods of the Character class. &lt;/li&gt;&lt;br /&gt;&lt;li&gt;Interpret char sequences in all forms (char[], implementations of java.lang.CharSequence, implementations of java.text.CharacterIterator) as UTF-16 sequences, and promote their use in higher-level APIs. &lt;/li&gt;&lt;br /&gt;&lt;li&gt;Provide APIs to easily convert between various char and code point based representations. &lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;Good blog on unicode support in j2se5 : &lt;a href="http://weblogs.java.net/blog/joconner/archive/2004/04/unicode_40_supp.html"&gt;John Conner blog&lt;/a&gt;&lt;br /&gt;Highlights:&lt;br /&gt;# char is a UTF-16 code unit, not a code point&lt;br /&gt;# new low-level APIs use an int to represent a Unicode code point&lt;br /&gt;# high level APIs have been updated to understand surrogate pairs&lt;br /&gt;# a preference towards char sequence APIs instead of char based methods&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8982674345885868";
google_ad_width = 728;
google_ad_height = 15;
google_ad_format = "728x15_0ads_al";
google_ad_channel = "";
google_color_border = "336699";
google_color_bg = "FFFFFF";
google_color_link = "0000FF";
google_color_text = "000000";
google_color_url = "008000";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7419916-113470516760743215?l=krsethur.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krsethur.blogspot.com/feeds/113470516760743215/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7419916&amp;postID=113470516760743215' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/113470516760743215'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/113470516760743215'/><link rel='alternate' type='text/html' href='http://krsethur.blogspot.com/2005/12/java-unicode-support.html' title='Java Unicode Support'/><author><name>S. Krishnamoorthy</name><uri>http://www.blogger.com/profile/01839756663272614286</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7419916.post-113470445847199997</id><published>2005-12-16T09:10:00.000+05:30</published><updated>2007-04-24T11:53:55.365+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='SCJP 5.0'/><title type='text'>Java Floating point</title><content type='html'>Good link for java floating point : http://people.uncw.edu/tompkinsj/133/Numbers/Reals.htm&lt;br /&gt;&lt;br /&gt;IEEE 754:&lt;br /&gt;The IEEE 754 Standard uses 1-plus form of the binary normalized fraction (rounded). The fraction part is called the mantissa.&lt;br /&gt;1-plus normalized scientific notation base two is then&lt;br /&gt;&lt;br /&gt;N = &amp;plusmn; (1.b1b2b3b4 ...)2 x 2+E&lt;br /&gt;&lt;br /&gt;The 1 is understood to be there and is not recorded.&lt;br /&gt;The Java primitive data type float is 4 bytes, or 32 bits:&lt;br /&gt;&lt;br /&gt;Sign: 0 &amp;reg; positive, 1 &amp;reg; negative.&lt;br /&gt;&lt;br /&gt;Exponent: excess-127 format for float, excess-1023 format for double. &lt;br /&gt;&lt;br /&gt;    * Float: Emin = -126, Emax = 127&lt;br /&gt;    * Double: Emin = -1022, Emax = 1023&lt;br /&gt;    * Consider an 8 bit number which has a range of 0 - 256. We use the formula excess - 127 = E to assign the value of our exponent with excess = 127 representing 0.&lt;br /&gt;    * In this manner, excess = 120 is an exponent of -7 since 120 - 127 = -7, and excess = 155 is the exponent +28 since 155 - 127 = +28. Excess values of 0, (Emin - 1), and 255, (Emax + 1), have special meanings which are discussed below.&lt;br /&gt;&lt;br /&gt;Mantissa: normalized 1-plus fraction with the 1 to the left of the radix point not recorded, float: b1b2b3b4&amp;#8230;b23, double: b1b2b3b4&amp;#8230;b52. This value is rounded based on the value of the next least significant bit not recorded (if there is a 1 in b24, b53 respectively, increment the least significant bit).&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8982674345885868";
google_ad_width = 728;
google_ad_height = 15;
google_ad_format = "728x15_0ads_al";
google_ad_channel = "";
google_color_border = "336699";
google_color_bg = "FFFFFF";
google_color_link = "0000FF";
google_color_text = "000000";
google_color_url = "008000";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7419916-113470445847199997?l=krsethur.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krsethur.blogspot.com/feeds/113470445847199997/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7419916&amp;postID=113470445847199997' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/113470445847199997'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/113470445847199997'/><link rel='alternate' type='text/html' href='http://krsethur.blogspot.com/2005/12/java-floating-point.html' title='Java Floating point'/><author><name>S. Krishnamoorthy</name><uri>http://www.blogger.com/profile/01839756663272614286</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7419916.post-113464111357823023</id><published>2005-12-15T15:35:00.000+05:30</published><updated>2007-04-24T11:53:55.366+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='SCJP 5.0'/><title type='text'>Static Method Inheritance</title><content type='html'>This link : http://java.sun.com/docs/books/tutorial/java/javaOO/override.html explains this issue with details.&lt;br /&gt;&lt;br /&gt;For class methods, the runtime system invokes the method defined in the compile-time type of the reference on which the method is called. For instance methods, the runtime system invokes the method defined in the runtime type of the reference on which the method is called.&lt;br /&gt;&lt;br /&gt;I paste here the same for easy reference:&lt;br /&gt;&lt;br /&gt;public class Animal {&lt;br /&gt;public static void hide() {&lt;br /&gt;System.out.println("The hide method in Animal.");&lt;br /&gt;}&lt;br /&gt;public void override() {&lt;br /&gt;System.out.println("The override method in Animal.");&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;The second class, a subclass of Animal, is called Cat:&lt;br /&gt;&lt;br /&gt;public class Cat extends Animal {&lt;br /&gt;public static void hide() {&lt;br /&gt;System.out.println("The hide method in Cat.");&lt;br /&gt;}&lt;br /&gt;public void override() {&lt;br /&gt;System.out.println("The override method in Cat.");&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public static void main(String[] args) {&lt;br /&gt;Cat myCat = new Cat();&lt;br /&gt;Animal myAnimal = (Animal)myCat;&lt;br /&gt;myAnimal.hide();&lt;br /&gt;myAnimal.override();&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;The Cat class overrides the instance method in Animal called override and hides the class method in Animal called hide. The main method in this class creates an instance of Cat, casts it to a Animal reference, and then calls both the hide and the override methods on the instance. The output from this program is as follows:&lt;br /&gt;&lt;br /&gt;The hide method in Animal.&lt;br /&gt;The override method in Cat.&lt;br /&gt;&lt;br /&gt;The version of the hidden method that gets invoked is the one in the superclass, and the version of the overridden method that gets invoked is the one in the subclass. For class methods, the runtime system invokes the method defined in the compile-time type of the reference on which the method is called. In the example, the compile-time type of myAnimal is Animal. Thus, the runtime system invokes the hide method defined in Animal. For instance methods, the runtime system invokes the method defined in the runtime type of the reference on which the method is called. In the example, the runtime type of myAnimal is Cat. Thus, the runtime system invokes the override method defined in Cat.&lt;br /&gt;&lt;br /&gt;An instance method cannot override a static method, and a static method cannot hide an instance method.&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8982674345885868";
google_ad_width = 728;
google_ad_height = 15;
google_ad_format = "728x15_0ads_al";
google_ad_channel = "";
google_color_border = "336699";
google_color_bg = "FFFFFF";
google_color_link = "0000FF";
google_color_text = "000000";
google_color_url = "008000";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7419916-113464111357823023?l=krsethur.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krsethur.blogspot.com/feeds/113464111357823023/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7419916&amp;postID=113464111357823023' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/113464111357823023'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/113464111357823023'/><link rel='alternate' type='text/html' href='http://krsethur.blogspot.com/2005/12/static-method-inheritance.html' title='Static Method Inheritance'/><author><name>S. Krishnamoorthy</name><uri>http://www.blogger.com/profile/01839756663272614286</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7419916.post-113238100288737740</id><published>2005-11-19T11:46:00.000+05:30</published><updated>2007-04-24T12:10:01.484+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Others'/><title type='text'>Multi-Boot Linux with Windows XP</title><content type='html'>Installed Fedora and Ubuntu with windows XP. Steps to be taken:&lt;br /&gt;1. Boot from linux CD in CD-Rom&lt;br /&gt;2. During partition, select 'Advanced' checkbox in case of Fedora. In case of Ubuntu use the Guided partitioning option.&lt;br /&gt;3. These install GRUB loaded by default in MBR. But, better option I feel(and did) is to install the GRUB loader in the boot partition of the linux itself and take a copy of the boot part using tool like bootpart and add it to the boot.ini of the windows. &lt;br /&gt;&lt;br /&gt;Issues in installing Ubuntu:&lt;br /&gt; - Installation of ubuntu is in two parts. First base image is installed and then additional packages are installed. After the base images were installed, it made the linux partition as "Active" partition. Thus, it is always going to be the GRUB loader which will load the OS. In order to change it back to the windows loader, need to make the windows partition as "Active". One issue I encountered was that after making the windows partition as active and rebooting the system, the other windows partition became hidden. Setting this partition to "UnHide" using partition manager also didn't solve the problem of unhiding this partition. To solve this problem, the GNU "parted" tool of linux came to my help. Using this, I set the windows partition to unhide. Then did a reboot. Now my windows partition became unhidden. GNU parted helped me to solve this issue which even partition magic cannot fix.&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8982674345885868";
google_ad_width = 728;
google_ad_height = 15;
google_ad_format = "728x15_0ads_al";
google_ad_channel = "";
google_color_border = "336699";
google_color_bg = "FFFFFF";
google_color_link = "0000FF";
google_color_text = "000000";
google_color_url = "008000";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7419916-113238100288737740?l=krsethur.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krsethur.blogspot.com/feeds/113238100288737740/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7419916&amp;postID=113238100288737740' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/113238100288737740'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/113238100288737740'/><link rel='alternate' type='text/html' href='http://krsethur.blogspot.com/2005/11/multi-boot-linux-with-windows-xp.html' title='Multi-Boot Linux with Windows XP'/><author><name>S. Krishnamoorthy</name><uri>http://www.blogger.com/profile/01839756663272614286</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7419916.post-112919168366443791</id><published>2005-10-13T13:51:00.000+05:30</published><updated>2007-04-24T12:06:28.645+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='ADF'/><title type='text'>ADF : Class Casting Exception with ApplicationModule</title><content type='html'>1. I have written my Base applicationmodule(say, CatalogApplicationModuleImpl) extending ApplicationModuleImpl in my frameworkextension Project. &lt;br /&gt;2. Then in the Model project which is dependent on this fwkextension project, I write my ApplicationModule(say, CatalogServiceImpl) extending CatalogApplicationModuleImpl. &lt;br /&gt;3. Then I expose some of the methods of CatalogServiceImpl through a interface CatalogService to the DataAction classes in controller. &lt;br /&gt;4. Now similar to AM, I've base controller CatalogDataForwardAction in fwkextension project which is extended by the actual dataaction classesin the viewController project. In the base controller i've the utility method:&lt;br /&gt;&lt;br /&gt;protected CatalogApplicationModuleImpl getApplicationModule(String dataControlName,DataActionContext ctx) &lt;br /&gt;{DCDataControl dc = ctx.getBindingContext().findDataControl(dataControlName);&lt;br /&gt;if ((dc != null) &amp;&amp; dc instanceof DCJboDataControl) &lt;br /&gt;{return (CatalogApplicationModuleImpl) dc.getDataProvider();}&lt;br /&gt;return null;}&lt;br /&gt;&lt;br /&gt;5. This is the same method as in Toystore project of SMUENCH. The changeis I'm casting the CatalogServiceImpl(from dc.getDataProvider()) to itsbase class CatalogApplicationModuleImpl, so that I can invoke some methodson the base AM(CatalogApplicationModuleImpl) from the base controller(CatalogDataForwardAction). I need this since I'm writing some methods inthe base controller which need not be replicated in all the controllers implementing this class. &lt;br /&gt;6. The problem is that the above casting fails. I understand that by the above I'm trying to cast a class to a Impl class which is not present in the client side(controller) and hence this exception. If that is the case, what is the wayI can access the methods in the base AM(CatalogApplicationModuleImpl)from the base controller(CatalogDataForwardAction)(these two classesare present in the fwkExtension project). i.e., how can I expose theCatalogApplicationModuleImpl to the controller(should I have to writethis Impl as implementing some interface and use that interface in thebase controller. If so, where should the base interface be created?&lt;br /&gt;Thanks,Krishna.&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8982674345885868";
google_ad_width = 728;
google_ad_height = 15;
google_ad_format = "728x15_0ads_al";
google_ad_channel = "";
google_color_border = "336699";
google_color_bg = "FFFFFF";
google_color_link = "0000FF";
google_color_text = "000000";
google_color_url = "008000";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7419916-112919168366443791?l=krsethur.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krsethur.blogspot.com/feeds/112919168366443791/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7419916&amp;postID=112919168366443791' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/112919168366443791'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/112919168366443791'/><link rel='alternate' type='text/html' href='http://krsethur.blogspot.com/2005/10/adf-class-casting-exception-with.html' title='ADF : Class Casting Exception with ApplicationModule'/><author><name>S. Krishnamoorthy</name><uri>http://www.blogger.com/profile/01839756663272614286</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7419916.post-112919157497938517</id><published>2005-10-13T13:49:00.000+05:30</published><updated>2007-04-24T12:06:28.645+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='ADF'/><title type='text'>ADF:Setting of who columns(Audit columns) in the Entity Object 
</title><content type='html'>Posted the following question in jdeveloper forum today&lt;br /&gt;I have who columns like created_by, creation_date, last_update_date, last_updated_by etc., in the table(and so the entity object). These need to get set based on the user logged in. Currently, I'm achieving the same by following logic:&lt;br /&gt;1. Wrote my own TransactionImpl extending DBTransactionImpl2 and registeredthe transaction factory to the application module.&lt;br /&gt;2. In my transactionImpl, there is a setter method: public void setUserId(int userId)&lt;br /&gt;3. I've a filter to redirect the user to login page if not logged in. In the filter Istore the userid in the session, if user is authenticated.&lt;br /&gt;4. Everytimein the DataAction PrepareModel phase, I invoke the methodsetUserId on the applicationModule passing the value from the session, whichsets the same in the TransactionImpl. Then in the EntityObject create method,I access this value to set the userId. I call the setter in all theaction class(so that if in the next request I get a different application moduleor a different transaction due to transaction/AM harvesting, the statevariable may be lost and hence in the preparemodel phase i explicity set them). Is this correct or any other way I can achieve the same&lt;br /&gt;5. My next question is : how do I set these last_update_date and last_updated_by when the entity object is queried and changed. I can do thisin SetAttributeInternal Method(with a check that the index is not these twoattributes). However, this logic will then become tied to a particular entityobject. I want this logic to be written in my base class of EntityImpl so thatall EntityImpl extending my base EntityImpl will have this logic incorporatedautomatically.&lt;br /&gt;Please let me know how can I acheive this.&lt;br /&gt;Thanks,Krishna.&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8982674345885868";
google_ad_width = 728;
google_ad_height = 15;
google_ad_format = "728x15_0ads_al";
google_ad_channel = "";
google_color_border = "336699";
google_color_bg = "FFFFFF";
google_color_link = "0000FF";
google_color_text = "000000";
google_color_url = "008000";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7419916-112919157497938517?l=krsethur.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krsethur.blogspot.com/feeds/112919157497938517/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7419916&amp;postID=112919157497938517' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/112919157497938517'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/112919157497938517'/><link rel='alternate' type='text/html' href='http://krsethur.blogspot.com/2005/10/adfsetting-of-who-columnsaudit-columns.html' title='ADF:Setting of who columns(Audit columns) in the Entity Object &#xA;'/><author><name>S. Krishnamoorthy</name><uri>http://www.blogger.com/profile/01839756663272614286</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7419916.post-112696027796437577</id><published>2005-09-17T18:01:00.000+05:30</published><updated>2007-04-24T12:07:57.680+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Others'/><title type='text'>Stock Market Learnings</title><content type='html'>&lt;i&gt;&lt;u&gt;&lt;b&gt;Technical Analysis&lt;/b&gt;&lt;/u&gt;&lt;/i&gt;&lt;br /&gt;&lt;u&gt;1. Bar Chart&lt;/u&gt;&lt;br /&gt;A single vertical line with opening price on the left side and the closing price on the right side. The advantage of using a bar chart over a straight line graph is that it shows the high, low, open and close for each particular day. &lt;br /&gt;&lt;u&gt;2. CandleStick Charting&lt;/u&gt;&lt;br /&gt;A vertical line with a cylindrical body. Body is black or red if stock closed lower. Body is white or green if stock closed higher. &lt;br /&gt;Patterns : &lt;br /&gt;&lt;ul&gt;&lt;li&gt;Bullish : cylindrical equispaced between low and high,&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Bearish : cylindrical portion more at the bottom of the line. &lt;/li&gt;&lt;br /&gt;&lt;li&gt;Hammer : small cylindrical portion at the top of the line : indicate the reveral in downtrend is in the works&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Star : a single horizontal line at the center of a vertical line - stock going to change its course&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt; &lt;br /&gt;&lt;u&gt;3. Point and Figure Chart&lt;/u&gt;&lt;br /&gt;Mainly for intraday charting. &lt;br /&gt;increases are represented by a rising stack of "X"s, while decreases are represented by a declining stack of "O"s.&lt;br /&gt;&lt;u&gt;4. Moving Average Chart&lt;/u&gt;&lt;br /&gt;Average value of price over a period of time. 50 day average chart-&gt;average of 50 days closing price. The most commonly used moving averages are of 20, 30, 50, 100 and 200 days.Typically, when a stock price moves below its moving average it is a bad sign because the stock is moving on a negative trend. The opposite is true for stocks that exceed their moving average - in this case, hold on for the ride. &lt;br /&gt;&lt;u&gt;5. The Relative Strength Index&lt;/u&gt;&lt;br /&gt;RSI = 100 - [100/(1 + RS)] &lt;br /&gt;where: &lt;br /&gt;RS = (Avg. of n-day up closes)/(Avg. of n-day down closes) &lt;br /&gt;n= days (most analysts use 9 - 15 day RSI) &lt;br /&gt;At around 70, stock is overbought. Better to sell at this point. In a bullish market, wait till 80&lt;br /&gt;At around 30, stock is oversold. Better to buy at this point. In a bearish market, wait till 20&lt;br /&gt;&lt;u&gt;6. The Money Flow Index&lt;/u&gt;&lt;br /&gt;&lt;u&gt;&lt;i&gt;Average price for the day: &lt;br /&gt;&lt;/i&gt;&lt;/u&gt;&lt;br /&gt;Average Price =  (Day High + Day Low + Close  ) / 3  &lt;br /&gt;&lt;i&gt;&lt;u&gt;Now we need the Money Flow: &lt;br /&gt;&lt;/u&gt;&lt;/i&gt;Money Flow = Average Price x Day's Volume  &lt;br /&gt;If the price was up in a particular day, this is considered to be "positive money flow". If the price closed down, it is considered to be "negative money flow". &lt;br /&gt;Money Flow Ratio =  (Positive Money Flow  ) / (Negative Money Flow)&lt;br /&gt;&lt;u&gt;Other Methods&lt;br /&gt;&lt;/u&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Support and Resistance&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Bollinger Bands&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8982674345885868";
google_ad_width = 728;
google_ad_height = 15;
google_ad_format = "728x15_0ads_al";
google_ad_channel = "";
google_color_border = "336699";
google_color_bg = "FFFFFF";
google_color_link = "0000FF";
google_color_text = "000000";
google_color_url = "008000";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7419916-112696027796437577?l=krsethur.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krsethur.blogspot.com/feeds/112696027796437577/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7419916&amp;postID=112696027796437577' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/112696027796437577'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/112696027796437577'/><link rel='alternate' type='text/html' href='http://krsethur.blogspot.com/2005/09/stock-market-learnings.html' title='&lt;b&gt;Stock Market Learnings&lt;/b&gt;&lt;u&gt;&lt;/u&gt;'/><author><name>S. Krishnamoorthy</name><uri>http://www.blogger.com/profile/01839756663272614286</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7419916.post-112565512272838872</id><published>2005-09-02T15:28:00.000+05:30</published><updated>2007-04-24T12:07:21.052+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='ADF'/><title type='text'>Struts html checkbox : unchecked is not getting posted 
</title><content type='html'>Recently posted a question in oracle jdeveloper forum :&lt;br /&gt;If a struts html checkbox is unchecked, then when submitting this form containing this checkbox, the checkbox value is not getting posted. Hence, the same is not getting reflected in themodel. So, to post the unchecked value also, what should I do?&lt;br /&gt;Got the reply:&lt;br /&gt;Read the Struts newbie FAQ : http://struts.apache.org/faqs/newbie.html#checkbox&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8982674345885868";
google_ad_width = 728;
google_ad_height = 15;
google_ad_format = "728x15_0ads_al";
google_ad_channel = "";
google_color_border = "336699";
google_color_bg = "FFFFFF";
google_color_link = "0000FF";
google_color_text = "000000";
google_color_url = "008000";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7419916-112565512272838872?l=krsethur.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krsethur.blogspot.com/feeds/112565512272838872/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7419916&amp;postID=112565512272838872' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/112565512272838872'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/112565512272838872'/><link rel='alternate' type='text/html' href='http://krsethur.blogspot.com/2005/09/struts-html-checkbox-unchecked-is-not.html' title='Struts html checkbox : unchecked is not getting posted &#xA;'/><author><name>S. Krishnamoorthy</name><uri>http://www.blogger.com/profile/01839756663272614286</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7419916.post-112495295907319520</id><published>2005-08-25T12:25:00.000+05:30</published><updated>2007-04-24T12:03:12.870+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Encoding'/><title type='text'></title><content type='html'>&lt;b&gt;&lt;u&gt;&lt;font size=3&gt;The UTF-8 encoding rules&lt;/font&gt;&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;font face="Times New Roman"&gt;1.	&lt;/font&gt;Characters U+0000 to U+007F (ASCII) are encoded simply as bytes 0x00 to 0x7F  (ASCII compatibility). This means that files and strings which contain only 7-bit ASCII characters have the same encoding under both ASCII and UTF-8. A single byte is needed for any of these characters! &lt;br /&gt;&lt;font face="Times New Roman"&gt;2.	&lt;/font&gt;All characters &gt;U+007F are encoded as a sequence of several bytes, each of which has the most significant bit set. Therefore, no ASCII byte (0x00-0x7F) can appear as part of any other character. &lt;br /&gt;&lt;font face="Times New Roman"&gt;3.	&lt;/font&gt;The first byte of a multibyte sequence that represents a non-ASCII character is always in the range 0xC0 to 0xFD and it indicates how many bytes follow for this character. All further bytes in a multibyte sequence are in the range 0x80 to 0xBF. This allows easy resynchronization andmakes the encoding stateless and robust against missing bytes &lt;br /&gt;&lt;font face="Times New Roman"&gt;4.	&lt;/font&gt;All possible 231 UCS codes can be encoded &lt;br /&gt;&lt;font face="Times New Roman"&gt;5.	&lt;/font&gt;UTF-8 encoded characters may theoretically be up to six bytes long, however 16-bit characters (the ones implicitly supported in the UCS-2 encoding, and by Str Library) are only up to three bytes long &lt;br /&gt;&lt;font face="Times New Roman"&gt;6.	&lt;/font&gt;The sorting order of Bigendian UCS-4 byte strings is preserved &lt;br /&gt;&lt;font face="Times New Roman"&gt;7.	&lt;/font&gt;The bytes 0xFE and 0xFF are never used in this encoding&lt;br /&gt;&lt;br /&gt;The following byte sequences are used to represent a character: &lt;br /&gt;&lt;br /&gt;U-00000000 - U-0000007F: 	0xxxxxxx &lt;br /&gt;U-00000080 - U-000007FF: 	110xxxxx 10xxxxxx &lt;br /&gt;U-00000800 - U-0000FFFF: 	1110xxxx 10xxxxxx 10xxxxxx &lt;br /&gt;U-00010000 - U-001FFFFF: 	11110xxx 10xxxxxx 10xxxxxx 10xxxxxx &lt;br /&gt;U-00200000 - U-03FFFFFF: 	111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx &lt;br /&gt;U-04000000 - U-7FFFFFFF: 	1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx &lt;br /&gt;&lt;br /&gt;The xxx bit positions are filled with the bits of the character code number in binary representation. The rightmost x bit is the least-significant bit. Only the shortest possible multibyte sequence which can represent the code number of the character can be used. Note that in multibyte sequences, the number of leading 1 bits in the first byte is identical to the number of bytes in the entire sequence.&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8982674345885868";
google_ad_width = 728;
google_ad_height = 15;
google_ad_format = "728x15_0ads_al";
google_ad_channel = "";
google_color_border = "336699";
google_color_bg = "FFFFFF";
google_color_link = "0000FF";
google_color_text = "000000";
google_color_url = "008000";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7419916-112495295907319520?l=krsethur.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krsethur.blogspot.com/feeds/112495295907319520/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7419916&amp;postID=112495295907319520' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/112495295907319520'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/112495295907319520'/><link rel='alternate' type='text/html' href='http://krsethur.blogspot.com/2005/08/utf-8-encoding-rules-1.html' title=''/><author><name>S. Krishnamoorthy</name><uri>http://www.blogger.com/profile/01839756663272614286</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7419916.post-112488538251923641</id><published>2005-08-24T17:39:00.001+05:30</published><updated>2007-04-24T12:07:21.052+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='ADF'/><title type='text'>Form Submission</title><content type='html'>&lt;font size=4&gt; Form content types&lt;/font&gt;&lt;br /&gt;&lt;font size=3&gt;The &lt;/font&gt;&lt;font color="#0000FF" size=3&gt;&lt;u&gt;enctype&lt;/u&gt;&lt;/font&gt;&lt;font size=3&gt; attribute of the &lt;/font&gt;&lt;font color="#0000FF" size=3&gt;&lt;u&gt;FORM&lt;/u&gt;&lt;/font&gt;&lt;font size=3&gt; element specifies the &lt;/font&gt;&lt;font color="#0000FF" size=3&gt;&lt;u&gt;content type&lt;/u&gt;&lt;/font&gt;&lt;font size=3&gt; used to encode the &lt;/font&gt;&lt;font color="#0000FF" size=3&gt;&lt;u&gt;form data set&lt;/u&gt;&lt;/font&gt;&lt;font size=3&gt; for submission to the server. User agents must support the content types listed below. Behavior for other content types is unspecified.&lt;br /&gt;Please also consult the section on &lt;/font&gt;&lt;font color="#0000FF" size=3&gt;&lt;u&gt;escaping ampersands in URI attribute values&lt;/u&gt;&lt;/font&gt;&lt;font size=3&gt;.&lt;br /&gt;application/x-www-form-urlencoded &lt;br /&gt;This is the default content type. Forms submitted with this content type must be encoded as follows:&lt;br /&gt;Control names and values are escaped. Space characters are replaced by &lt;/font&gt;&lt;font face="Courier New" size=3&gt;`+'&lt;/font&gt;&lt;font size=3&gt;, and then reserved characters are escaped as described in &lt;/font&gt;&lt;font color="#0000FF" size=3&gt;&lt;u&gt;[RFC1738]&lt;/u&gt;&lt;/font&gt;&lt;font size=3&gt;, section 2.2: Non-alphanumeric characters are replaced by &lt;/font&gt;&lt;font face="Courier New" size=3&gt;`%HH'&lt;/font&gt;&lt;font size=3&gt;, a percent sign and two hexadecimal digits representing the ASCII code of the character. Line breaks are represented as "CR LF" pairs (i.e., &lt;/font&gt;&lt;font face="Courier New" size=3&gt;`%0D%0A'&lt;/font&gt;&lt;font size=3&gt;). &lt;br /&gt;The control names/values are listed in the order they appear in the document. The name is separated from the value by &lt;/font&gt;&lt;font face="Courier New" size=3&gt;`='&lt;/font&gt;&lt;font size=3&gt; and name/value pairs are separated from each other by &lt;/font&gt;&lt;font face="Courier New" size=3&gt;`&amp;'&lt;/font&gt;&lt;font size=3&gt;. &lt;br /&gt;multipart/form-data &lt;br /&gt;Note. Please consult &lt;/font&gt;&lt;u&gt;&lt;font color="#0000FF" size=3&gt;[RFC2388]&lt;/font&gt;&lt;/u&gt;&lt;font size=3&gt; for additional information about file uploads, including backwards compatibility issues, the relationship between "multipart/form-data" and other content types, performance issues, etc.&lt;br /&gt;Please consult the appendix for information about &lt;/font&gt;&lt;u&gt;&lt;font color="#0000FF" size=3&gt;security issues for forms&lt;/font&gt;&lt;/u&gt;&lt;font size=3&gt;.&lt;br /&gt;The content type "application/x-www-form-urlencoded" is inefficient for sending large quantities of binary data or text containing non-ASCII characters. The content type "multipart/form-data" should be used for submitting forms that contain files, non-ASCII data, and binary data.&lt;br /&gt;The content "multipart/form-data" follows the rules of all multipart MIME data streams as outlined in &lt;/font&gt;&lt;font color="#0000FF" size=3&gt;&lt;u&gt;[RFC2045]&lt;/u&gt;&lt;/font&gt;&lt;font size=3&gt;. The definition of "multipart/form-data" is available at the &lt;/font&gt;&lt;font color="#0000FF" size=3&gt;&lt;u&gt;[IANA]&lt;/u&gt;&lt;/font&gt;&lt;font size=3&gt; registry.&lt;br /&gt;A "multipart/form-data" message contains a series of parts, each representing a &lt;/font&gt;&lt;font color="#0000FF" size=3&gt;&lt;u&gt;successful control&lt;/u&gt;&lt;/font&gt;&lt;font size=3&gt;. The parts are sent to the processing agent in the same order the corresponding controls appear in the document stream. Part boundaries should not occur in any of the data; how this is done lies outside the scope of this specification.&lt;br /&gt;As with all multipart MIME types, each part has an optional "Content-Type" header that defaults to "text/plain". User agents should supply the "Content-Type" header, accompanied by a "charset" parameter.&lt;br /&gt;Each part is expected to contain:&lt;br /&gt;a "Content-Disposition" header whose value is "form-data". &lt;br /&gt;a name attribute specifying the &lt;/font&gt;&lt;font color="#0000FF" size=3&gt;&lt;u&gt;control name&lt;/u&gt;&lt;/font&gt;&lt;font size=3&gt; of the corresponding control. Control names originally encoded in non-ASCII &lt;/font&gt;&lt;font color="#0000FF" size=3&gt;&lt;u&gt;character sets&lt;/u&gt;&lt;/font&gt;&lt;font size=3&gt; may be encoded using the method outlined in &lt;/font&gt;&lt;font color="#0000FF" size=3&gt;&lt;u&gt;[RFC2045]&lt;/u&gt;&lt;/font&gt;&lt;font size=3&gt;. &lt;br /&gt;Thus, for example, for a control named "mycontrol", the corresponding part would be specified:&lt;/font&gt;&lt;br /&gt;&lt;font face="Courier New" size=2&gt;Content-Disposition: form-data; name="mycontrol"&lt;/font&gt;&lt;br /&gt;&lt;font size=3&gt;As with all MIME transmissions, "CR LF" (i.e., &lt;/font&gt;&lt;font face="Courier New" size=3&gt;`%0D%0A'&lt;/font&gt;&lt;font size=3&gt;) is used to separate lines of data.&lt;br /&gt;Each part may be encoded and the "Content-Transfer-Encoding" header supplied if the value of that part does not conform to the default (7BIT) encoding (see &lt;/font&gt;&lt;font color="#0000FF" size=3&gt;&lt;u&gt;[RFC2045]&lt;/u&gt;&lt;/font&gt;&lt;font size=3&gt;, section 6)&lt;br /&gt;If the contents of a file are submitted with a form, the file input should be identified by the appropriate &lt;/font&gt;&lt;font color="#0000FF" size=3&gt;&lt;u&gt;content type&lt;/u&gt;&lt;/font&gt;&lt;font size=3&gt; (e.g., "application/octet-stream"). If multiple files are to be returned as the result of a single form entry, they should be returned as "multipart/mixed" embedded within the "multipart/form-data".&lt;br /&gt;The user agent should attempt to supply a file name for each submitted file. The file name may be specified with the "filename" parameter of the 'Content-Disposition: form-data' header, or, in the case of multiple files, in a 'Content-Disposition: file' header of the subpart. If the file name of the client's operating system is not in US-ASCII, the file name might be approximated or encoded using the method of &lt;/font&gt;&lt;font color="#0000FF" size=3&gt;&lt;u&gt;[RFC2045]&lt;/u&gt;&lt;/font&gt;&lt;font size=3&gt;. This is convenient for those cases where, for example, the uploaded files might contain references to each other (e.g., a TeX file and its ".sty" auxiliary style description).&lt;br /&gt;The following example illustrates "multipart/form-data" encoding. Suppose we have the following form:&lt;/font&gt;&lt;br /&gt;&lt;font face="Courier New" size=2&gt; &lt;FORM action="http://server.com/cgi/handle"&lt;br /&gt;       enctype="multipart/form-data"&lt;br /&gt;       method="post"&gt;&lt;br /&gt;   &lt;P&gt;&lt;br /&gt;   What is your name? &lt;INPUT type="text" name="submit-name"&gt;&lt;BR&gt;&lt;br /&gt;   What files are you sending? &lt;INPUT type="file" name="files"&gt;&lt;BR&gt;&lt;br /&gt;   &lt;INPUT type="submit" value="Send"&gt; &lt;INPUT type="reset"&gt;&lt;br /&gt; &lt;/FORM&gt;&lt;/font&gt;&lt;br /&gt;&lt;font size=3&gt;If the user enters "Larry" in the text input, and selects the text file "file1.txt", the user agent might send back the following data:&lt;/font&gt;&lt;br /&gt;&lt;font face="Courier New" size=2&gt;   Content-Type: multipart/form-data; boundary=AaB03x&lt;br /&gt;&lt;br /&gt;   --AaB03x&lt;br /&gt;   Content-Disposition: form-data; name="submit-name"&lt;br /&gt;&lt;br /&gt;   Larry&lt;br /&gt;   --AaB03x&lt;br /&gt;   Content-Disposition: form-data; name="files"; filename="file1.txt"&lt;br /&gt;   Content-Type: text/plain&lt;br /&gt;&lt;br /&gt;   ... contents of file1.txt ...&lt;br /&gt;   --AaB03x--&lt;/font&gt;&lt;br /&gt;&lt;font size=3&gt;If the user selected a second (image) file "file2.gif", the user agent might construct the parts as follows:&lt;/font&gt;&lt;br /&gt;&lt;font face="Courier New" size=2&gt;   Content-Type: multipart/form-data; boundary=AaB03x&lt;br /&gt;&lt;br /&gt;   --AaB03x&lt;br /&gt;   Content-Disposition: form-data; name="submit-name"&lt;br /&gt;&lt;br /&gt;   Larry&lt;br /&gt;   --AaB03x&lt;br /&gt;   Content-Disposition: form-data; name="files"&lt;br /&gt;   Content-Type: multipart/mixed; boundary=BbC04y&lt;br /&gt;&lt;br /&gt;   --BbC04y&lt;br /&gt;   Content-Disposition: file; filename="file1.txt"&lt;br /&gt;   Content-Type: text/plain&lt;br /&gt;&lt;br /&gt;   ... contents of file1.txt ...&lt;br /&gt;   --BbC04y&lt;br /&gt;   Content-Disposition: file; filename="file2.gif"&lt;br /&gt;   Content-Type: image/gif&lt;br /&gt;   Content-Transfer-Encoding: binary&lt;br /&gt;&lt;br /&gt;   ...contents of file2.gif...&lt;br /&gt;   --BbC04y--&lt;br /&gt;   --AaB03x--&lt;/font&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8982674345885868";
google_ad_width = 728;
google_ad_height = 15;
google_ad_format = "728x15_0ads_al";
google_ad_channel = "";
google_color_border = "336699";
google_color_bg = "FFFFFF";
google_color_link = "0000FF";
google_color_text = "000000";
google_color_url = "008000";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7419916-112488538251923641?l=krsethur.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krsethur.blogspot.com/feeds/112488538251923641/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7419916&amp;postID=112488538251923641' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/112488538251923641'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/112488538251923641'/><link rel='alternate' type='text/html' href='http://krsethur.blogspot.com/2005/08/form-submission_112488538251923641.html' title='Form Submission'/><author><name>S. Krishnamoorthy</name><uri>http://www.blogger.com/profile/01839756663272614286</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7419916.post-112202081752513753</id><published>2005-07-22T13:56:00.000+05:30</published><updated>2007-04-24T12:06:28.646+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='ADF'/><title type='text'>ADF Event handling precedence</title><content type='html'>When an event named YourEvent fires, then... &lt;br /&gt;&lt;br /&gt;If you have apublic void onYourEvent(DataActionContext ctx) method in the data action class handling the request, it will be invoked to handle the event with custom code. &lt;br /&gt;If you have an action binding in the current binding container named YourEvent, it will be invoked. &lt;br /&gt;&lt;br /&gt;When used in combination with 1, your event-handler code needs to explicitly invoke the default action for the current event by using code like: &lt;br /&gt;&lt;br /&gt;if (ctx.getEventActionBinding() != null) ctx.getEventActionBinding().doIt();&lt;br /&gt;If you have a Struts forward named YourEvent, it will be used to determine the next page to forward control to. &lt;br /&gt;&lt;br /&gt;When used in combination with 1, if your event-handling code invokes ctx.setActionForward(), then your programmatically set forward takes precedence. &lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8982674345885868";
google_ad_width = 728;
google_ad_height = 15;
google_ad_format = "728x15_0ads_al";
google_ad_channel = "";
google_color_border = "336699";
google_color_bg = "FFFFFF";
google_color_link = "0000FF";
google_color_text = "000000";
google_color_url = "008000";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7419916-112202081752513753?l=krsethur.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krsethur.blogspot.com/feeds/112202081752513753/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7419916&amp;postID=112202081752513753' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/112202081752513753'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/112202081752513753'/><link rel='alternate' type='text/html' href='http://krsethur.blogspot.com/2005/07/adf-event-handling-precedence.html' title='ADF Event handling precedence'/><author><name>S. Krishnamoorthy</name><uri>http://www.blogger.com/profile/01839756663272614286</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7419916.post-112196923473502812</id><published>2005-07-21T23:37:00.000+05:30</published><updated>2007-04-24T12:06:28.647+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='ADF'/><title type='text'>ADF : Creating PreparedStatements</title><content type='html'>While creating preparedStatement from Application Module, it is better to not close them in a finally block. But, close them in the overridden remove() method of the AM by calling some method which will close all the local statements. Thus, will improve performance.&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8982674345885868";
google_ad_width = 728;
google_ad_height = 15;
google_ad_format = "728x15_0ads_al";
google_ad_channel = "";
google_color_border = "336699";
google_color_bg = "FFFFFF";
google_color_link = "0000FF";
google_color_text = "000000";
google_color_url = "008000";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7419916-112196923473502812?l=krsethur.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krsethur.blogspot.com/feeds/112196923473502812/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7419916&amp;postID=112196923473502812' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/112196923473502812'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/112196923473502812'/><link rel='alternate' type='text/html' href='http://krsethur.blogspot.com/2005/07/adf-creating-preparedstatements.html' title='ADF : Creating PreparedStatements'/><author><name>S. Krishnamoorthy</name><uri>http://www.blogger.com/profile/01839756663272614286</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7419916.post-112028421379241685</id><published>2005-07-02T11:33:00.000+05:30</published><updated>2007-04-24T11:53:55.366+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='SCJP 5.0'/><title type='text'>Vector or ArrayList</title><content type='html'>Checked this site : &lt;a href="http://www.javaworld.com/javaworld/javaqa/2001-06/03-qa-0622-vector.html" title="Vector or ArrayList" target="_blank"&gt;Vector or ArrayList&lt;/a&gt;. Vectors are synchronized, while ArrayList is unsynchronized(making them not thread-safe). A Vector defaults to doubling the size of its array, while the ArrayList increases its array size by 50 percent(when full)...&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8982674345885868";
google_ad_width = 728;
google_ad_height = 15;
google_ad_format = "728x15_0ads_al";
google_ad_channel = "";
google_color_border = "336699";
google_color_bg = "FFFFFF";
google_color_link = "0000FF";
google_color_text = "000000";
google_color_url = "008000";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7419916-112028421379241685?l=krsethur.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krsethur.blogspot.com/feeds/112028421379241685/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7419916&amp;postID=112028421379241685' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/112028421379241685'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/112028421379241685'/><link rel='alternate' type='text/html' href='http://krsethur.blogspot.com/2005/07/vector-or-arraylist.html' title='Vector or ArrayList'/><author><name>S. Krishnamoorthy</name><uri>http://www.blogger.com/profile/01839756663272614286</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7419916.post-111947135460944944</id><published>2005-06-23T01:41:00.000+05:30</published><updated>2007-04-24T12:07:57.681+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Others'/><title type='text'>Raaga Player not working after RealPlayer 10.5 Upgrade</title><content type='html'>After upgrading to real player 10, cannot play songs from raaga.com. This was due to the firewall issue. Did the following things to make it work again.&lt;br /&gt;1. Uninstalled the real player 10 and installed the real player 8&lt;br /&gt;2. Set the RNSP setting and PNA setting in the Transport tab of preferences to "Use HTTP only".&lt;br /&gt;3. Now it works.(The step.2 done in real player 10 still doesn't allow to play songs..don't know yy)&lt;br /&gt;&lt;br /&gt;Note: For my laptop, even realplayer 8 had some problem. So, installed realoneplayer version 2(realplayer20) and did the above settings. It worked.&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8982674345885868";
google_ad_width = 728;
google_ad_height = 15;
google_ad_format = "728x15_0ads_al";
google_ad_channel = "";
google_color_border = "336699";
google_color_bg = "FFFFFF";
google_color_link = "0000FF";
google_color_text = "000000";
google_color_url = "008000";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7419916-111947135460944944?l=krsethur.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://service.real.com/firewall/rplay.html' title='Raaga Player not working after RealPlayer 10.5 Upgrade'/><link rel='replies' type='application/atom+xml' href='http://krsethur.blogspot.com/feeds/111947135460944944/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7419916&amp;postID=111947135460944944' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/111947135460944944'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/111947135460944944'/><link rel='alternate' type='text/html' href='http://krsethur.blogspot.com/2005/06/raaga-player-not-working-after.html' title='Raaga Player not working after RealPlayer 10.5 Upgrade'/><author><name>S. Krishnamoorthy</name><uri>http://www.blogger.com/profile/01839756663272614286</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7419916.post-111675672318744422</id><published>2005-05-22T15:42:00.000+05:30</published><updated>2007-04-24T12:07:21.053+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='ADF'/><title type='text'>Steps to dynamically bind a dynamically created view object</title><content type='html'>1. Expose the method recreateDynamicViewObjectWithNewQuery(String newSQL) to the client in the AM. This method will basically find the view object, remove it, create a new instance of vo from the query and executes the query:&lt;br /&gt;    findViewObject(DYNAMIC_VO_NAME).remove();&lt;br /&gt;    ViewObject vo = createViewObjectFromQueryStmt(DYNAMIC_VO_NAME,newSQL);&lt;br /&gt;    vo.executeQuery();&lt;br /&gt;2. In the Client side(controller), override the prepareModel. The overriden method should&lt;br /&gt;    - unset the tokenvalidation through : ctx.getBindingContainer().setEnableTokenValidation(false);&lt;br /&gt;    - Unbind the rowsetIterator from the dynamicqueryiteratorbinding through : ctx.getBindingContainer(). findIteratorBinding(DYNAMIC_VO_ITER_NAME).bindRowSetIterator(null,false);&lt;br /&gt;    - call the method exposed by AM to bind the newSQL to the view object.&lt;br /&gt;    - remove the control binding by name. removeControlBinding(ctx,DYNAMIC_VO_RANGE);(basically remove the control binding from the iterator binding list and remove it from the binding container).&lt;br /&gt;      removeControlBinding:&lt;br /&gt;      ---------------------------&lt;br /&gt;      DCBindingContainer bc = ctx.getBindingContainer();&lt;br /&gt;      DCControlBinding binding = bc.findCtrlBinding(name);&lt;br /&gt;      binding.getDCIteratorBinding().removeValueBinding(binding);&lt;br /&gt;      bc.removeControlBinding(binding);&lt;br /&gt;   - recreate the control binding and add it to the binding container:addDynamicRangeBinding(ctx,DYNAMIC_VO_RANGE, DYNAMIC_VO_ITER_NAME);&lt;br /&gt;     addDynamicRangeBinding&lt;br /&gt;     -------------------------------&lt;br /&gt;      DCBindingContainer bc = ctx.getBindingContainer();&lt;br /&gt;      JUCtrlRangeBinding dynamicRangeBinding =&lt;br /&gt;          new JUCtrlRangeBinding(null,bc.findIteratorBinding(iterName),null);&lt;br /&gt;      bc.addControlBinding(bindingName,dynamicRangeBinding);&lt;br /&gt;  - Execute super.prepareModel(ctx);&lt;br /&gt;  -  Reset the tokenvalidation through : ctx.getBindingContainer().setEnableTokenValidation(true);&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8982674345885868";
google_ad_width = 728;
google_ad_height = 15;
google_ad_format = "728x15_0ads_al";
google_ad_channel = "";
google_color_border = "336699";
google_color_bg = "FFFFFF";
google_color_link = "0000FF";
google_color_text = "000000";
google_color_url = "008000";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7419916-111675672318744422?l=krsethur.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krsethur.blogspot.com/feeds/111675672318744422/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7419916&amp;postID=111675672318744422' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/111675672318744422'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/111675672318744422'/><link rel='alternate' type='text/html' href='http://krsethur.blogspot.com/2005/05/steps-to-dynamically-bind-dynamically_22.html' title='Steps to dynamically bind a dynamically created view object'/><author><name>S. Krishnamoorthy</name><uri>http://www.blogger.com/profile/01839756663272614286</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7419916.post-111675377602645915</id><published>2005-05-22T14:52:00.000+05:30</published><updated>2007-04-24T12:07:21.053+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='ADF'/><title type='text'>ADF - Dynamic rendering of UI irrespective of dataobjects</title><content type='html'>The following code in the view layer will render the dataobjects without any change in the view layer even though the view object gets re-constructed in the transaction. &lt;br /&gt;&lt;br /&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;&amp;lt;table border="1" cellpadding="2" cellspacing="0"&amp;gt;&lt;br /&gt;&amp;lt;tr&amp;gt;&lt;br /&gt;&amp;lt;c:forEach var="attributeLabel" items="${bindings.(voname).labelSet"&amp;gt;&lt;br /&gt;  &amp;lt;th&amp;gt;&lt;br /&gt;  &amp;lt;c:out value="${attributeLable}" /&amp;gt;&lt;br /&gt;  &amp;lt;/th&amp;gt;&lt;br /&gt;&amp;lt;/c:forEach&amp;gt;&lt;br /&gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;&amp;lt;c:forEach var="Row" items="${bindings.(voname).rangeSet"&amp;gt;&lt;br /&gt;&amp;lt;tr&amp;gt;&lt;br /&gt;  &amp;lt;c:forEach var="attrValue" items="${Row.attributeValues}" &amp;gt;&lt;br /&gt;    &amp;lt;td&amp;gt;&lt;br /&gt;      &amp;lt;c:out value="${attrValue}" /&amp;gt;&lt;br /&gt;    &amp;lt;/td&amp;gt;&lt;br /&gt;  &amp;lt;/c:forEach&amp;gt;&lt;br /&gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;&amp;lt;/c:forEach&amp;gt;&lt;br /&gt;&amp;lt;/table&amp;gt;&lt;br /&gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;  &lt;br /&gt;Basically the above code makes use of the labelSet and rangeSet properties of the VO object in the bindings and loop through them and print the same.&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8982674345885868";
google_ad_width = 728;
google_ad_height = 15;
google_ad_format = "728x15_0ads_al";
google_ad_channel = "";
google_color_border = "336699";
google_color_bg = "FFFFFF";
google_color_link = "0000FF";
google_color_text = "000000";
google_color_url = "008000";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7419916-111675377602645915?l=krsethur.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krsethur.blogspot.com/feeds/111675377602645915/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7419916&amp;postID=111675377602645915' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/111675377602645915'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/111675377602645915'/><link rel='alternate' type='text/html' href='http://krsethur.blogspot.com/2005/05/adf-dynamic-rendering-of-ui.html' title='ADF - Dynamic rendering of UI irrespective of dataobjects'/><author><name>S. Krishnamoorthy</name><uri>http://www.blogger.com/profile/01839756663272614286</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7419916.post-111675197333740049</id><published>2005-05-22T14:22:00.000+05:30</published><updated>2007-04-24T12:05:46.615+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='UIX'/><title type='text'>Open new window in UIX</title><content type='html'>Had a question on how to open new window in UIX using javascript. Then got the following link which explains clearly how the javascript support is provided in UIX.&lt;br /&gt;Look out the LovXXXX components demo in uix.&lt;br /&gt;See &amp;lt;script&amp;gt; demo of component guide. This should help you clearly understand the functionalities.&lt;br /&gt;See documentation of above UIX components&lt;br /&gt;&lt;br /&gt;Like providing handlers to HTML elements, you can attach event handlers to UIX components too. You can attach event handlers on onClick, onMouseOver,... on UIX components just as you would do in HTML.&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8982674345885868";
google_ad_width = 728;
google_ad_height = 15;
google_ad_format = "728x15_0ads_al";
google_ad_channel = "";
google_color_border = "336699";
google_color_bg = "FFFFFF";
google_color_link = "0000FF";
google_color_text = "000000";
google_color_url = "008000";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7419916-111675197333740049?l=krsethur.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krsethur.blogspot.com/feeds/111675197333740049/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7419916&amp;postID=111675197333740049' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/111675197333740049'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/111675197333740049'/><link rel='alternate' type='text/html' href='http://krsethur.blogspot.com/2005/05/open-new-window-in-uix.html' title='Open new window in UIX'/><author><name>S. Krishnamoorthy</name><uri>http://www.blogger.com/profile/01839756663272614286</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7419916.post-111675175010992416</id><published>2005-05-22T14:19:00.000+05:30</published><updated>2007-04-24T12:07:57.681+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Others'/><title type='text'>Personalizing google home page</title><content type='html'>check this link  &lt;a href="http://www.google.com/ig"&gt;http://www.google.com/ig&lt;/a&gt; to start personalizing your own Google home page.&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8982674345885868";
google_ad_width = 728;
google_ad_height = 15;
google_ad_format = "728x15_0ads_al";
google_ad_channel = "";
google_color_border = "336699";
google_color_bg = "FFFFFF";
google_color_link = "0000FF";
google_color_text = "000000";
google_color_url = "008000";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7419916-111675175010992416?l=krsethur.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krsethur.blogspot.com/feeds/111675175010992416/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7419916&amp;postID=111675175010992416' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/111675175010992416'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/111675175010992416'/><link rel='alternate' type='text/html' href='http://krsethur.blogspot.com/2005/05/personalizing-google-home-page.html' title='Personalizing google home page'/><author><name>S. Krishnamoorthy</name><uri>http://www.blogger.com/profile/01839756663272614286</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7419916.post-111647698452535823</id><published>2005-05-19T09:59:00.000+05:30</published><updated>2007-04-24T12:07:21.054+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='UIX'/><category scheme='http://www.blogger.com/atom/ns#' term='ADF'/><title type='text'>JBO-30003</title><content type='html'>Getting this error:&lt;br /&gt;oracle.jbo.common.ampool.ApplicationPoolException: JBO-30003: The application pool (model.AppModuleLocal) failed to checkout an application module due to the following exception:&lt;br /&gt;Solution:&lt;br /&gt;  - May be the database is down. Bring it up.&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8982674345885868";
google_ad_width = 728;
google_ad_height = 15;
google_ad_format = "728x15_0ads_al";
google_ad_channel = "";
google_color_border = "336699";
google_color_bg = "FFFFFF";
google_color_link = "0000FF";
google_color_text = "000000";
google_color_url = "008000";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7419916-111647698452535823?l=krsethur.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krsethur.blogspot.com/feeds/111647698452535823/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7419916&amp;postID=111647698452535823' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/111647698452535823'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/111647698452535823'/><link rel='alternate' type='text/html' href='http://krsethur.blogspot.com/2005/05/jbo-30003.html' title='JBO-30003'/><author><name>S. Krishnamoorthy</name><uri>http://www.blogger.com/profile/01839756663272614286</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7419916.post-111634730386862703</id><published>2005-05-17T21:58:00.000+05:30</published><updated>2007-04-24T12:07:21.054+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='UIX'/><category scheme='http://www.blogger.com/atom/ns#' term='ADF'/><title type='text'>Master-Detail design using ADF in uix page</title><content type='html'>In case the view layer is using UIX page, this requirement can even be simplified by dragging the child view object in view link with the option of Master to Detail(many to many). This will automatically take care of synchronization between master and details during navigation.&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8982674345885868";
google_ad_width = 728;
google_ad_height = 15;
google_ad_format = "728x15_0ads_al";
google_ad_channel = "";
google_color_border = "336699";
google_color_bg = "FFFFFF";
google_color_link = "0000FF";
google_color_text = "000000";
google_color_url = "008000";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7419916-111634730386862703?l=krsethur.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krsethur.blogspot.com/feeds/111634730386862703/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7419916&amp;postID=111634730386862703' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/111634730386862703'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/111634730386862703'/><link rel='alternate' type='text/html' href='http://krsethur.blogspot.com/2005/05/master-detail-design-using-adf-in-uix.html' title='Master-Detail design using ADF in uix page'/><author><name>S. Krishnamoorthy</name><uri>http://www.blogger.com/profile/01839756663272614286</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7419916.post-111634673837181161</id><published>2005-05-17T21:48:00.000+05:30</published><updated>2007-04-24T12:11:17.759+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='ADF'/><title type='text'>Simplest way to design Master-detail tables using ADF</title><content type='html'>Simplese way to design a master-detail table using ADF,&lt;br /&gt;1. Create the master and detail entity objects. Create the appropriate association objects and view links.&lt;br /&gt;2. Using the master view object in data control, create the master table.&lt;br /&gt;3. Using the detail view object(present in view link) and create a child table&lt;br /&gt;4. In the master table, add a column with ADF operation: setCurrentRowWithKey&lt;br /&gt;that's it... now run the page, clicking on the select link in master will automatically refresh the child table(vo gets refreshed automatically by viewlink).&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8982674345885868";
google_ad_width = 728;
google_ad_height = 15;
google_ad_format = "728x15_0ads_al";
google_ad_channel = "";
google_color_border = "336699";
google_color_bg = "FFFFFF";
google_color_link = "0000FF";
google_color_text = "000000";
google_color_url = "008000";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7419916-111634673837181161?l=krsethur.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krsethur.blogspot.com/feeds/111634673837181161/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7419916&amp;postID=111634673837181161' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/111634673837181161'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/111634673837181161'/><link rel='alternate' type='text/html' href='http://krsethur.blogspot.com/2005/05/simplest-way-to-design-master-detail.html' title='Simplest way to design Master-detail tables using ADF'/><author><name>S. Krishnamoorthy</name><uri>http://www.blogger.com/profile/01839756663272614286</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7419916.post-111634544354876048</id><published>2005-05-17T21:27:00.000+05:30</published><updated>2007-04-24T12:07:21.055+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='ADF'/><title type='text'>Conditional display of table data</title><content type='html'>This code snippet makes use of JSTL core taglib to display no data found if the table contains no records, else it display the records. &lt;br /&gt;&lt;BR&gt;------------------------------------&lt;BR&gt;    &amp;lt;table border="1" width="100%"&amp;gt;&lt;BR&gt;      &amp;lt;tr&amp;gt;&lt;BR&gt;        &amp;lt;th&amp;gt;&amp;nbsp;&amp;lt;/th&amp;gt;&lt;BR&gt;        &amp;lt;th&amp;gt;&lt;BR&gt;          &amp;lt;c:out value="${bindings.DummyView1.labels['Field1']}"/&amp;gt;&lt;BR&gt;        &amp;lt;/th&amp;gt;&lt;BR&gt;        &amp;lt;th&amp;gt;&lt;BR&gt;          &amp;lt;c:out value="${bindings.DummyView1.labels['Field2']}"/&amp;gt;&lt;BR&gt;        &amp;lt;/th&amp;gt;&lt;BR&gt;        &amp;lt;th&amp;gt;&lt;BR&gt;          &amp;lt;c:out value="${bindings.DummyView1.labels['Field3']}"/&amp;gt;&lt;BR&gt;        &amp;lt;/th&amp;gt;&lt;BR&gt;      &amp;lt;/tr&amp;gt;&lt;BR&gt;      &amp;lt;c:choose&amp;gt;&lt;BR&gt;          &amp;lt;c:when test="${bindings.DummyView1Iterator.estimatedRowCount&amp;gt;0}"&amp;gt;&lt;BR&gt;              &amp;lt;c:forEach var="Row" items="${bindings.DummyView1.rangeSet}"&amp;gt;&lt;BR&gt;                &amp;lt;tr&amp;gt;&lt;BR&gt;                  &amp;lt;td&amp;gt;&lt;BR&gt;                    &amp;lt;c:out value="${Row.currencyString}"/&amp;gt;&lt;BR&gt;                  &amp;lt;/td&amp;gt;&lt;BR&gt;                  &amp;lt;td&amp;gt;&lt;BR&gt;                    &amp;lt;c:out value="${Row['Field1']}"/&amp;gt;&amp;nbsp;&lt;BR&gt;                  &amp;lt;/td&amp;gt;&lt;BR&gt;                  &amp;lt;td&amp;gt;&lt;BR&gt;                    &amp;lt;c:out value="${Row['Field2']}"/&amp;gt;&amp;nbsp;&lt;BR&gt;                  &amp;lt;/td&amp;gt;&lt;BR&gt;                  &amp;lt;td&amp;gt;&lt;BR&gt;                    &amp;lt;c:out value="${Row['Field3']}"/&amp;gt;&amp;nbsp;&lt;BR&gt;                  &amp;lt;/td&amp;gt;&lt;BR&gt;                &amp;lt;/tr&amp;gt;&lt;BR&gt;              &amp;lt;/c:forEach&amp;gt;&lt;BR&gt;          &amp;lt;/c:when&amp;gt;&lt;BR&gt;          &amp;lt;c:otherwise&amp;gt;&lt;BR&gt;            &amp;lt;tr&amp;gt;&lt;BR&gt;            &amp;lt;td colspan="4"&amp;gt;no data found&amp;lt;/td&amp;gt;&lt;BR&gt;            &amp;lt;/tr&amp;gt;&lt;BR&gt;          &amp;lt;/c:otherwise&amp;gt;&lt;BR&gt;      &amp;lt;/c:choose&amp;gt;      &lt;BR&gt;    &amp;lt;/table&amp;gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8982674345885868";
google_ad_width = 728;
google_ad_height = 15;
google_ad_format = "728x15_0ads_al";
google_ad_channel = "";
google_color_border = "336699";
google_color_bg = "FFFFFF";
google_color_link = "0000FF";
google_color_text = "000000";
google_color_url = "008000";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7419916-111634544354876048?l=krsethur.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krsethur.blogspot.com/feeds/111634544354876048/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7419916&amp;postID=111634544354876048' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/111634544354876048'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/111634544354876048'/><link rel='alternate' type='text/html' href='http://krsethur.blogspot.com/2005/05/this-code-snippet-makes-use-of-jstl.html' title='Conditional display of table data'/><author><name>S. Krishnamoorthy</name><uri>http://www.blogger.com/profile/01839756663272614286</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7419916.post-111606338458873194</id><published>2005-05-14T15:06:00.000+05:30</published><updated>2007-04-24T12:04:58.047+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='ADF'/><title type='text'>Question in ADF</title><content type='html'>I got this question: In a multi-page data entry flow where all the pages share the same underlying Entity Object, how should the entity level validation(validateEntity) be prevented until the user navigates to the final review and submit page. So, posted this question in a forum and got the response:&lt;br /&gt; We have this SAME question.&lt;br /&gt;&lt;br /&gt;We were thinking of:&lt;br /&gt;1. add an attribute to the entity (not persistent) called pagenum&lt;br /&gt;&lt;br /&gt;2. Expose this in the view&lt;br /&gt;&lt;br /&gt;3. Expose in page as hidden value with the page# filled in&lt;br /&gt;&lt;br /&gt;In validation methods (in EO) say:&lt;br /&gt;public boolean validateEOfield1()&lt;br /&gt;{&lt;br /&gt;if thisFieldNeedsValidateOnPage( "field", getPageNum() )&lt;br /&gt;{&lt;br /&gt;// perform the validation logic here...&lt;br /&gt;if ( thisFieldInError( "field" ) )&lt;br /&gt;return false;&lt;br /&gt;else&lt;br /&gt;return true;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;// if not on this page, then ...&lt;br /&gt;// everything is ok&lt;br /&gt;return true;&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;I haven't gotten very far with this idea and wanted to post a question, but I don't receive much feedback on my posts, so I wasn't sure what to do with it...&lt;br /&gt;&lt;br /&gt;My Reply:&lt;br /&gt; The above suggestion resolves the issue where the field validation is manually written by me in the EO. But, in case of declarative validations which I specify through Jdeveloper, how can I control the field validations.&lt;br /&gt;&lt;br /&gt;One question here: model layer validations should be independent of the view layer right(either single/multi step). In this case, are n't we mixing the page flow logic&lt;br /&gt;in our entity objects, which is a violation of MVC.&lt;br /&gt;&lt;br /&gt;Instead, is it possible to get all the validation exceptions for all the EO's in the current transaction in the controller and check whether these exception can happen in the current page. If so, we will display these exceptions. Else, we will silently disregard these validation exceptions.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8982674345885868";
google_ad_width = 728;
google_ad_height = 15;
google_ad_format = "728x15_0ads_al";
google_ad_channel = "";
google_color_border = "336699";
google_color_bg = "FFFFFF";
google_color_link = "0000FF";
google_color_text = "000000";
google_color_url = "008000";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7419916-111606338458873194?l=krsethur.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krsethur.blogspot.com/feeds/111606338458873194/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7419916&amp;postID=111606338458873194' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/111606338458873194'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/111606338458873194'/><link rel='alternate' type='text/html' href='http://krsethur.blogspot.com/2005/05/question-in-adf.html' title='Question in ADF'/><author><name>S. Krishnamoorthy</name><uri>http://www.blogger.com/profile/01839756663272614286</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7419916.post-111604878126787088</id><published>2005-05-14T11:03:00.000+05:30</published><updated>2007-04-24T12:04:58.048+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='ADF'/><title type='text'>BC4J Entity States</title><content type='html'>Entity States in BC4J are as follows:&lt;br /&gt;STATUS_INITIALIZED = -1&lt;br /&gt;STATUS_NEW = 0&lt;br /&gt;STATUS_UNMODIFIED = 1&lt;br /&gt;STATUS_MODIFIED = 2&lt;br /&gt;STATUS_DELETED = 3&lt;br /&gt;STATUS_DEAD = 4&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8982674345885868";
google_ad_width = 728;
google_ad_height = 15;
google_ad_format = "728x15_0ads_al";
google_ad_channel = "";
google_color_border = "336699";
google_color_bg = "FFFFFF";
google_color_link = "0000FF";
google_color_text = "000000";
google_color_url = "008000";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7419916-111604878126787088?l=krsethur.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krsethur.blogspot.com/feeds/111604878126787088/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7419916&amp;postID=111604878126787088' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/111604878126787088'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/111604878126787088'/><link rel='alternate' type='text/html' href='http://krsethur.blogspot.com/2005/05/bc4j-entity-states.html' title='BC4J Entity States'/><author><name>S. Krishnamoorthy</name><uri>http://www.blogger.com/profile/01839756663272614286</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7419916.post-111312303993091771</id><published>2005-04-10T14:20:00.000+05:30</published><updated>2007-04-24T12:07:57.682+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Others'/><title type='text'>UseNet site</title><content type='html'>Found this &lt;a href="ftp://rtfm.mit.edu/pub/usenet/"&gt;usenet site&lt;/a&gt; very useful. Particularly the comp.lang.c section was very good.&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8982674345885868";
google_ad_width = 728;
google_ad_height = 15;
google_ad_format = "728x15_0ads_al";
google_ad_channel = "";
google_color_border = "336699";
google_color_bg = "FFFFFF";
google_color_link = "0000FF";
google_color_text = "000000";
google_color_url = "008000";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7419916-111312303993091771?l=krsethur.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krsethur.blogspot.com/feeds/111312303993091771/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7419916&amp;postID=111312303993091771' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/111312303993091771'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/111312303993091771'/><link rel='alternate' type='text/html' href='http://krsethur.blogspot.com/2005/04/usenet-site.html' title='UseNet site'/><author><name>S. Krishnamoorthy</name><uri>http://www.blogger.com/profile/01839756663272614286</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7419916.post-111280074035261619</id><published>2005-04-06T20:49:00.000+05:30</published><updated>2007-04-24T12:07:57.682+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Others'/><title type='text'></title><content type='html'>&lt;a href='http://photos1.blogger.com/img/266/4984/640/photomerged.jpg'&gt;&lt;img border='0' style='border:1px solid #000000; margin:2px' src='http://photos1.blogger.com/img/266/4984/320/photomerged.jpg'&gt;&lt;/a&gt;&lt;br /&gt;Procurement PQE Team&amp;nbsp;&lt;a href='http://www.hello.com/' target='ext'&gt;&lt;img src='http://photos1.blogger.com/pbh.gif' alt='Posted by Hello' border='0' style='border:0px;padding:0px;background:transparent;' align='absmiddle'&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8982674345885868";
google_ad_width = 728;
google_ad_height = 15;
google_ad_format = "728x15_0ads_al";
google_ad_channel = "";
google_color_border = "336699";
google_color_bg = "FFFFFF";
google_color_link = "0000FF";
google_color_text = "000000";
google_color_url = "008000";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7419916-111280074035261619?l=krsethur.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krsethur.blogspot.com/feeds/111280074035261619/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7419916&amp;postID=111280074035261619' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/111280074035261619'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/111280074035261619'/><link rel='alternate' type='text/html' href='http://krsethur.blogspot.com/2005/04/procurement-pqe-team.html' title=''/><author><name>S. Krishnamoorthy</name><uri>http://www.blogger.com/profile/01839756663272614286</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7419916.post-111279924237081059</id><published>2005-04-06T20:24:00.000+05:30</published><updated>2007-04-24T12:10:01.485+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Others'/><title type='text'>Graphics Tutorial - SDL</title><content type='html'>Some of the tips to successfully compile and link the projects in the tutorial &lt;a href="http://cone3d.gamedev.net/cgi-bin/index.pl"&gt;GFX with SDL&lt;/a&gt;&lt;br /&gt;1. Change the directory in Project workspace file &lt;br /&gt;2. Add libmingw32.a, libsdlmain.a and libsdl.a in the linker options.&lt;br /&gt;3. libsdlmain.a should be added before libsdl.a&lt;br /&gt;4. inlcude  &amp;lt;iostream.h&amp;gt; and &amp;lt;string.h&amp;gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8982674345885868";
google_ad_width = 728;
google_ad_height = 15;
google_ad_format = "728x15_0ads_al";
google_ad_channel = "";
google_color_border = "336699";
google_color_bg = "FFFFFF";
google_color_link = "0000FF";
google_color_text = "000000";
google_color_url = "008000";
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7419916-111279924237081059?l=krsethur.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://krsethur.blogspot.com/feeds/111279924237081059/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7419916&amp;postID=111279924237081059' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/111279924237081059'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7419916/posts/default/111279924237081059'/><link rel='alternate' type='text/html' href='http://krsethur.blogspot.com/2005/04/graphics-tutorial-sdl.html' title='Graphics Tutorial - SDL'/><author><name>S. Krishnamoorthy</name><uri>http://www.blogger.com/profile/01839756663272614286</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
