Why is this exception being thrown

Everytime this piece of code is run we get this Exception. Is there a way to avoid that at all. Though it is being handled properly but it would still be better if this could be avoided. Any ideas
JavaDeveloper mspete = JavaDeveloper().getInstance();
try{
mspete.setJob(new Job(goodWages));
mspete.setHouse(new House(4BDRM));
mspete.getHouse.add(Wife);
mspete.getHouse.add(Kids);
mspete.setMood(Feelin.GOOD);
catch(LayedOffDueToOffShoreDevelopmentException){
RepoMan reaper = new RepoMan();
reaper.take(mspete.getHouse());
mspete.setHouse(new House(BOX));
mspete.lose(Wife,Kids);
mspete.get(Shotgun);
mspete.shoot(mspete);

Try mspete.clone() cus that almost equals me, my error handling weren't quite as extreme though. Mine was more like
if(mspete.clone() instanceof Rob) {
  Rob rob = (Rob)mspete.clone();
  pub.go();
  rob.drink(pub.buyLotsOfBeer());
  rob.fallOverDrunk();
}Rob.

Similar Messages

  • I am facing a problem while deploying an Entity bean in iPlanet(sp3).I have attached the exception thrown.Why has this exception occured?

    [04/Dec/2001 10:54:00:2] error: EBFP-marshal_internal: internal exception caught in kcp skeleton, ex
    ception = java.lang.NullPointerException
    [04/Dec/2001 10:54:00:2] error: Exception Stack Trace:
    java.lang.NullPointerException
    at java.util.Hashtable.get(Hashtable.java:321)
    at com.netscape.server.ejb.SQLPersistenceManager.<init>(Unknown Source)
    at com.netscape.server.ejb.SQLPersistenceManagerFactory.newInstance(Unknown Source)
    at com.netscape.server.ejb.EntityDelegateManagerImpl.getPersistenceManager(Unknown Source)
    at com.netscape.server.ejb.EntityDelegateManagerImpl.doPersistentFind(Unknown Source)
    at com.netscape.server.ejb.EntityDelegateManagerImpl.find(Unknown Source)
    at com.kivasoft.eb.EBHomeBase.findSingleByParms(Unknown Source)
    at samples.test.ejb.Entity.ejb_home_samples_test_ejb_Entity_TestEntityBean.findByPrimaryKey(
    ejb_home_samples_test_ejb_Entity_TestEntityBean.java:126)
    at samples.test.ejb.Entity.ejb_kcp_skel_TestEntityHome.findByPrimaryKey__samples_test_ejb_En
    tity_TestEntity__int(ejb_kcp_skel_TestEntityHome.java:266)
    at com.kivasoft.ebfp.FPRequest.invokenative(Native Method)
    at com.kivasoft.ebfp.FPRequest.invoke(Unknown Source)
    at samples.test.ejb.Entity.ejb_kcp_stub_TestEntityHome.findByPrimaryKey(ejb_kcp_stub_TestEnt
    ityHome.java:338)
    at samples.test.ejb.Entity.ejb_stub_TestEntityHome.findByPrimaryKey(ejb_stub_TestEntityHome.
    java:85)
    at samples.test.ejb.TestEJB.getGreeting(TestEJB.java:51)

    Hi,
    I think you are trying to test the Hello world EJB example shipped with the product. As a first
    step I would recomend you to go through every line of the document on deploying this application,
    since, I too have experienced many errors while trying to deploy the sample applications, but on
    following the documentation, I subsequently overcame all the errors and have been working with the
    applications. So please follow the steps in documentation and let me know, if you still encounter any
    issues.
    Regards
    Raj
    Sandhya S wrote:
    I am facing a problem while deploying an Entity bean in iPlanet(sp3).I
    have attached the exception thrown.Why has this exception occured?
    [04/Dec/2001 10:54:00:2] error: EBFP-marshal_internal: internal
    exception caught in kcp skeleton, ex
    ception = java.lang.NullPointerException
    [04/Dec/2001 10:54:00:2] error: Exception Stack Trace:
    java.lang.NullPointerException
    at java.util.Hashtable.get(Hashtable.java:321)
    at
    com.netscape.server.ejb.SQLPersistenceManager.<init>(Unknown Source)
    at
    com.netscape.server.ejb.SQLPersistenceManagerFactory.newInstance(Unknown
    Source)
    at
    com.netscape.server.ejb.EntityDelegateManagerImpl.getPersistenceManager(Unknown
    Source)
    at
    com.netscape.server.ejb.EntityDelegateManagerImpl.doPersistentFind(Unknown
    Source)
    at
    com.netscape.server.ejb.EntityDelegateManagerImpl.find(Unknown Source)
    at com.kivasoft.eb.EBHomeBase.findSingleByParms(Unknown
    Source)
    at
    samples.test.ejb.Entity.ejb_home_samples_test_ejb_Entity_TestEntityBean.findByPrimaryKey(
    ejb_home_samples_test_ejb_Entity_TestEntityBean.java:126)
    at
    samples.test.ejb.Entity.ejb_kcp_skel_TestEntityHome.findByPrimaryKey__samples_test_ejb_En
    tity_TestEntity__int(ejb_kcp_skel_TestEntityHome.java:266)
    at com.kivasoft.ebfp.FPRequest.invokenative(Native Method)
    at com.kivasoft.ebfp.FPRequest.invoke(Unknown Source)
    at
    samples.test.ejb.Entity.ejb_kcp_stub_TestEntityHome.findByPrimaryKey(ejb_kcp_stub_TestEnt
    ityHome.java:338)
    at
    samples.test.ejb.Entity.ejb_stub_TestEntityHome.findByPrimaryKey(ejb_stub_TestEntityHome.
    java:85)
    at samples.test.ejb.TestEJB.getGreeting(TestEJB.java:51)
    Try our New Web Based Forum at http://softwareforum.sun.com
    Includes Access to our Product Knowledge Base!

  • Wrong exception being thrown on CMP bean error

    In OC4J Release 2 I'm getting the wrong exception thrown from a CMP bean error.
    Situation:
    Servlet calls an update method on a stateless session bean with trans-attribute of Required. This update method finds 2 entity beans by primary key and updates both of them (all with trans-attribute of Supports). When an error is thrown in the second entity bean (by trying to set a value to something that breaks a constraint), I get the following error:
    com.evermind.server.rmi.OrionRemoteException: Transaction was rolled back: Error preparing bean instance: com.evermind.transaction.MarshallingXAException
    at TestSession_StatefulSessionBeanWrapper3.updatebothtests(TestSession_StatefulSessionBeanWrapper3.java:1164)
    at __jspPage1_insertEntityTest_jsp._jspService(__jspPage1_insertEntityTest_jsp.java:224)
    at com.orionserver.http.OrionHttpJspPage.service(OrionHttpJspPage.java:56)
    at com.evermind.server.http.HttpApplication.serviceJSP(HttpApplication.java:5680)
    at com.evermind.server.http.JSPServlet.service(JSPServlet.java:31)
    at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:667)
    at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:269)
    at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:702)
    at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:250)
    at com.evermind.util.ThreadPoolThread.run(ThreadPoolThread.java:62)
    Nested exception is:
    com.evermind.transaction.MarshallingXAException
    at com.evermind.server.ejb.EntityEJBObject.prepare(EntityEJBObject.java:70)
    at com.evermind.server.ApplicationServerTransactionSynchronization.prepareComponentsSuccess(ApplicationServerTransactionSynchronization.java:403)
    at com.evermind.server.ApplicationServerTransactionSynchronization.beforeCompletion(ApplicationServerTransactionSynchronization.java:565)
    at com.evermind.server.ApplicationServerTransaction.beforeCompletion(ApplicationServerTransaction.java:1063)
    at com.evermind.server.ApplicationServerTransaction.commit(ApplicationServerTransaction.java:552)
    at com.evermind.server.ApplicationServerTransaction.end(ApplicationServerTransaction.java:834)
    at TestSession_StatefulSessionBeanWrapper3.updatebothtests(TestSession_StatefulSessionBeanWrapper3.java:1160)
    at __jspPage1_insertEntityTest_jsp._jspService(__jspPage1_insertEntityTest_jsp.java:224)
    at com.orionserver.http.OrionHttpJspPage.service(OrionHttpJspPage.java:56)
    at com.evermind.server.http.HttpApplication.serviceJSP(HttpApplication.java:5680)
    at com.evermind.server.http.JSPServlet.service(JSPServlet.java:31)
    at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:667)
    at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:269)
    at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:702)
    at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:250)
    at com.evermind.util.ThreadPoolThread.run(ThreadPoolThread.java:62)
    Nested exception is:
    java.lang.InternalError: Werent current caller, server stacktrace (to disable this message, use -Dejb.assert=false at startup): java.lang.Throwable: Werent current caller
    at Test2_EntityBeanWrapper5.setEntityBean(Test2_EntityBeanWrapper5.java:1496)
    at com.evermind.server.ejb.EntityEJBHome.passivateAndRelease(EntityEJBHome.java:344)
    at com.evermind.server.ejb.EntityEJBObject.releaseContext(EntityEJBObject.java:378)
    at Test2_EntityBeanWrapper5.saveState(Test2_EntityBeanWrapper5.java:1442)
    at com.evermind.server.ejb.EntityEJBObject.prepare(EntityEJBObject.java:39)
    at com.evermind.server.ApplicationServerTransactionSynchronization.prepareComponentsSuccess(ApplicationServerTransactionSynchronization.java:403)
    at com.evermind.server.ApplicationServerTransactionSynchronization.beforeCompletion(ApplicationServerTransactionSynchronization.java:565)
    at com.evermind.server.ApplicationServerTransaction.beforeCompletion(ApplicationServerTransaction.java:1063)
    at com.evermind.server.ApplicationServerTransaction.commit(ApplicationServerTransaction.java:552)
    at com.evermind.server.ApplicationServerTransaction.end(ApplicationServerTransaction.java:834)
    at TestSession_StatefulSessionBeanWrapper3.updatebothtests(TestSession_StatefulSessionBeanWrapper3.java:1160)
    at __jspPage1_insertEntityTest_jsp._jspService(__jspPage1_insertEntityTest_jsp.java:224)
    at com.orionserver.http.OrionHttpJspPage.service(OrionHttpJspPage.java:56)
    at com.evermind.server.http.HttpApplication.serviceJSP(HttpApplication.java:5680)
    at com.evermind.server.http.JSPServlet.service(JSPServlet.java:31)
    at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:667)
    at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:269)
    at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:702)
    at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:250)
    at com.evermind.util.ThreadPoolThread.run(ThreadPoolThread.java:62) at Test2_EntityBeanWrapper5.setEntityBean(Test2_EntityBeanWrapper5.java:1496)
    at com.evermind.server.ejb.EntityEJBHome.passivateAndRelease(EntityEJBHome.java:344)
    at com.evermind.server.ejb.EntityEJBObject.releaseContext(EntityEJBObject.java:378)
    at Test2_EntityBeanWrapper5.saveState(Test2_EntityBeanWrapper5.java:1442)
    at com.evermind.server.ejb.EntityEJBObject.prepare(EntityEJBObject.java:39)
    at com.evermind.server.ApplicationServerTransactionSynchronization.prepareComponentsSuccess(ApplicationServerTransactionSynchronization.java:403)
    at com.evermind.server.ApplicationServerTransactionSynchronization.beforeCompletion(ApplicationServerTransactionSynchronization.java:565)
    at com.evermind.server.ApplicationServerTransaction.beforeCompletion(ApplicationServerTransaction.java:1063)
    at com.evermind.server.ApplicationServerTransaction.commit(ApplicationServerTransaction.java:552)
    at com.evermind.server.ApplicationServerTransaction.end(ApplicationServerTransaction.java:834)
    at TestSession_StatefulSessionBeanWrapper3.updatebothtests(TestSession_StatefulSessionBeanWrapper3.java:1160)
    at __jspPage1_insertEntityTest_jsp._jspService(__jspPage1_insertEntityTest_jsp.java:224)
    at com.orionserver.http.OrionHttpJspPage.service(OrionHttpJspPage.java:56)
    at com.evermind.server.http.HttpApplication.serviceJSP(HttpApplication.java:5680)
    at com.evermind.server.http.JSPServlet.service(JSPServlet.java:31)
    at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:667)
    at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:269)
    at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:702)
    at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:250)
    at com.evermind.util.ThreadPoolThread.run(ThreadPoolThread.java:62)
    Why am I getting a MarshallingXAException instead of a SQLException? In the old OC4J, I got a SQLException wrapped in an OrionRemoteException, with the details of what constraint was broken, instead of this.
    I've also duplicated this by doing the entity bean updates directly from the servlet wrapped in a UserTransaction.
    Jeff.

    Tell me whether your transaction has been rolled back or not....If it has been rolled back, then those messages, printed on your server console are debug messages...just ignore them...
    After this exception, can u able to execute other applications in OC4J?
    --Venky                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               

  • Exception being thrown by java3D

    Can any one explain what might be the reason of this exception? This exception comes from where i cant reach...
    java.lang.NullPointerException
    at javax.media.j3d.RenderMolecule.addRenderAtom(Unknown Source)
    at javax.media.j3d.RenderBin.findRenderMolecule(Unknown Source)
    at javax.media.j3d.RenderBin.insertRenderAtom(Unknown Source)
    at javax.media.j3d.RenderBin.processGeometryAtom(Unknown Source)
    at javax.media.j3d.BHTree.select(Unknown Source)
    at javax.media.j3d.BHTree.select(Unknown Source)
    at javax.media.j3d.BHTree.select(Unknown Source)
    at javax.media.j3d.BHTree.select(Unknown Source)
    at javax.media.j3d.BHTree.select(Unknown Source)
    at javax.media.j3d.BHTree.select(Unknown Source)
    at javax.media.j3d.BHTree.select(Unknown Source)
    at javax.media.j3d.BHTree.select(Unknown Source)
    at javax.media.j3d.BHTree.select(Unknown Source)
    at javax.media.j3d.BHTree.select(Unknown Source)
    at javax.media.j3d.BHTree.select(Unknown Source)
    at javax.media.j3d.BHTree.select(Unknown Source)
    at javax.media.j3d.BHTree.getVisibleBHTrees(Unknown Source)
    at javax.media.j3d.GeometryStructure.getVisibleBHTrees(Unknown Source)
    at javax.media.j3d.RenderBin.processMessages(Unknown Source)
    at javax.media.j3d.StructureUpdateThread.doWork(Unknown Source)
    at javax.media.j3d.J3dThread.run(Unknown Source)
    Many thanks...
    rahul

    At any cost, printStackTrace should return the details of the stack, I guess it is problem with the way you are logging.Because you writing to browser outputsream and browser might be skipping most of the things
    well try replace your catch with either system.out
    or
    catch( SQLException sqlException )
    try{
    java.io.PrintWriter log = new java.io.PrintWriter(new java.io.FileWriter("c:\\log.txt", false)
    e.printStackTrace(log);
    log.close();
    }catch(ex){}
    out.println( "SQLException Part 2: " + sqlException.getMessage() + "<BR>" );
    toWrite = toWrite + "SQLException: " + sqlException.getMessage() + "\n" ;
    catch( Exception exception )
    try{
    java.io.PrintWriter log = new java.io.PrintWriter(new java.io.FileWriter("c:\\log.txt", false)
    e.printStackTrace(log);
    log.close();
    }catch(ex){}
    out.println( "Exception Part 2: " + exception.getMessage() + "<BR>" );
    toWrite = toWrite + "Exception: " + exception.getMessage() + "\n" ;
    open c:\log.txt and just check what has printed..
    with regards
    LOkesh T.C

  • Exception being thrown...why?

    If I have
    stmt = myConn.createStatement();my program works fine
    But I need to be able to call rs.beforeFirst()
    By default resultset is forward only...so I do
    stmt = myConn.createStatement(ResultSet.TYPE_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);But I get the following exception.
    Exception in thread "main" java.lang.AbstractMethodError:
    org.postgresql.jdbc1.Jdbc1Connection.createStatement(II)Ljava/sql/Statement;
            at GUIFrame.<init>(GUIFrame.java:28)
            at TopClass.main(TopClass.java:8)

    stmt =
    myConn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
    ResultSet.CONCUR_READ_ONLY);
    org.postgresql.jdbc1.Jdbc1Connection.createStat
    ement(I
    I)Ljava/sql/Statement;
    at GUIFrame.<init>(GUIFrame.java:28)
    at TopClass.main(TopClass.java:8)
    Because the createStatement(int, int) method has been
    around since 1.2, and you are using an earlier
    driver. Upgrade your driver.
    http://jdbc.postgresql.org/download.html
    Good Luck
    Lee
    Thanks Lee.
    Maybe you are right. I have checked what driveer we have, and it is pg73jdbc1.jar
    Then I went to
    http://jdbc.postgresql.org/download.html
    and I notuice that this driver is for JDBC1. Is createStatement(int, int) part of JDBC 2? If so what workaround is available for me to go back in my ResultSet?
    Thanks.

  • What is the story on mac vulnerability? Is it serious or not serious?  If not serious, why is this not being explained?  If serious, why are Mac users not being informed of the risk?

    what is the story on mac vulnerability? Is it serious or not serious?
    If serious, why are we not kept informed
    If not serious, why is some much anxiety being created?

    IMO, it is being greatly over-blown in the media and online.
    Man in the middle attacks require the hacker to be connected to the same intranet network that your device is.  Even if they are, unless you go to a secure site and use personal data (like passcodes) they get nothing from stealing your data stream.
    If you are at your home, on your own secured intranet, then you really have virtually nothing to fear (as long as your own home network is secured and not wide open to anybody within range).  If you routinely use a VPN connection when on public wifi, again, you are fine.  Or if you use FireFox, Chrome or another browser that implements its own SSL security, then you are fine.
    The fact is, that even for those in a particular situation that is vulnerable to such an attack, most are not actually under any such attack - it is not nearly as rampant as the recent hype would have it seem to be.

  • REST Services - Permission exceptions being thrown

    In setting up a mobile site which will make use of REST services we have started to see exceptions in the log file. These exceptions do not happen all the time - that is they are random in nature. We may see them for about an hour or so and then not see them for a day.
    We are seeing the same exceptions as identified in this Re: REST secureProductCatalog exception and I used the following [Not able to invoke ATG Rest services thread|https://forums.oracle.com/forums/thread.jspa?messageID=10615221&#10615221] as a reference as well.
    Working through the ATG10 document, have set up the restSecurityConfiguration.xml which identifies the beans with a secure setting of false, have set up the secureCustomCatalog.xml which identifies each of the item descriptors and the acl that is to be applied.
    Have created an external user as well.
    I created a simple unit test class - outside of my development environment - to simulate the remote call to the ATG server to verify the behavior. Everything passed.
    Now I was able to reproduce the issue if after I establish the session (LogIn) , I log out before the call to the repository.
    What I am wondering is -
    1. Is there any other way in which this kind of error can be created/occurred?
    2. Is there any other configuration that needs to happen?
    As a side note, is there any way in which to configure REST so that it does not dump a stack trace to the log file in the event of this error - possible to create a more meaningful shorter message? When the issue happens, it just fills up the log files.

    The issue turned out to be centered around the amount of connections from the mobile site to the REST service. This was verified via a load test.
    Solution was to modify the mobile logic that would check if a connection/session was already open/available and use it, otherwise create a new one.
    This seems to have addressed the issue

  • Configure Keyboard Layout - why is this screen being displayed?

    Hello,
    I have a problem. I want the Solaris 10 installation to be hands-off. I modified the sysidcfg file, everything wors fine, but unfortunately after the execution of the finish script (at the end of the installation) this screen is being displayed:
    q Configure Keyboard Layout qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq
      Please specify the keyboard layout from the list below.
      > To make a selection, use the arrow keys to highlight the option and
        press Return to mark it [X].
          Keyboard Layout
          qqqqqqqqqqqqqqqqqqqqqqqqq
      ^   [ ] Slovenian
      x   [ ] Slovakian
      x   [ ] Spanish
      x   [ ] Swedish
      x   [ ] Swiss-French
      x   [ ] Swiss-German
      x   [ ] Taiwanese
      x   [ ] TurkishQ
      x   [ ] TurkishF
      x   [ ] UK-English
      -   [X] US-English
    qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq
        F2_Continue    F6_HelpWhat is the reason of that?
    Thanks in advance.
    Regards,
    Przemek

    Anybody? My last day to return is tomorrow, but I'd be willing to try once more if I just happened to get two faulty phones.

  • Why is this statement being repeated?

    import java.util.Scanner;
    class Main {
        public static void main(String[] args) {
            Scanner sc = new Scanner(System.in);
            System.out.print("Blahdy blah: " + "blah.");
            sc.next();
    }Output:
    Blahdy blah: blah.Blahdy blah: blah.
    I've found that removing the colon fixes this, but could someone please inform me as to why this happens?
    Thank you.

    Ah, nothing changes. I was getting this problem while I was using Scanner, so I expected that the use of it triggered something, but it does not!
    The following code does the same when executed:
    class Main {
        public static void main(String[] args) {
            // Apparently anything after the colon that is not a
            // space or blank character will cause this statement to repeat in NB.
            System.out.print("Blahdy blah: a");
    }This does not happen when using println, just thought I might add that.

  • Why is This message being relayed?

    I have my relay settings to only accept 127.0.0.0/8 and 192.168.88.0/24, so how did this message get through?
    Dec  5 19:55:34 mycompany postfix/smtp[24709]: 6852E91833E: to=<[email protected]>, relay=cluster4.us.messagelabs.com[216.82.250.19]:25, delay=256, delays=0.01/0.01/69/186, dsn=2.0.0, status=sent (250 ok 1323136534 qp 15594 server-5.tower-87.messagelabs.com!1323136279!47765957!1)
    This weekend I found that someone was sending thousands of spam messages through my server even though I use authentication.

    You need to look further back in your logs for the answer.
    Dec  5 19:55:34 mycompany postfix/smtp[24709]: 6852E91833E: to=<[email protected]>, relay=cluster4.us.messagelabs.com[216.82.250.19]:25, delay=256, delays=0.01/0.01/69/186, dsn=2.0.0, status=sent (250 ok 1323136534 qp 15594 server-5.tower-87.messagelabs.com!1323136279!47765957!1)
    The 'Accept SNMP relays...' option only relates to blind/untrusted relaying - if a connection comes from these IP addresses then accept the message, but that's not the only method that postfix will allow. If a user authenticates against the server (using one of the authentication methods you've selected) then they can also relay mail, regardless of their IP address.
    Therefore, my first guess would be that someone's guessed a valid username/password on your server and is therefore using an authenticated connection. This can happen easily if users don't have strong passwords.
    You'll need to track back through your logs to find where this message was injected into the mail queue.  Start off by searching for that message ID (6852E91833E) in the logs, or look back in time (this message has been in the queue for 256 seconds. Eventually that will tell you where it came from, and what user authenticated the connection. Then shut down that account until you can change that user's password and educate them on how to choose effective passwords.

  • Why am I getting this exception???

    Every once in a while I get the following exception when starting my app, and I can't figure out why... Why??
    java.lang.NullPointerException
         at javax.swing.SwingUtilities.computeIntersection(SwingUtilities.java:369)
         at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:404)
         at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(SystemEventQueueUtilities.java:117)
         at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:178)
         at java.awt.EventQueue.dispatchEvent(EventQueue.java:454)
         at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:201)
         at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)
         at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145)
         at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137)
         at java.awt.EventDispatchThread.run(EventDispatchThread.java:100)

    This is actually a very hard question. Swing is designed to be fast so it is not thread safe. That means if you do something to a swing component while its being painted, you get this type of exception. Notice how it does not mention your own code anywhere in the stack trace. The "Event Dispatcher Thread' is trying to paint something and you are probably changing its size, setting its visibility to false, removing it form its container, moving it, changing the data in its model, etc. Your code is doing something to the component at the exact moment its being painted, and this exception is thrown.
    There are two general strategies for dealing with this problem:
    1) When you modify swing components, use SwingUtilities.invokeLater() to make the event dispatcher thread do the work.
    2) Do your work in a synchronized block, something that looks like this (say you are removing rows from a table):
    synchronized ( table.getTreeLock() ) {
      // do work here...
    }Either of these strategies will prevent this type of error from happening. It's a tought problem, since it can happen anywhere, is usually hard to reproduce, and difficult to verify it's actually fixed.

  • Exception not thrown on Key Exists

    using c# api:
    I have a Btree DB configured with two secondary DB's and a custom comparer, I have initialized the DB with 'DuplicatesPolicy.NONE'. To my understanding this should cause an exception to be raised if I try to enter a duplicate. On Put(), I get no such exception.
    Why? Am I supposed to throw this from comparer? (Actually tried this but it looks like it leaves cursor in undefined state). How Do I get the KeyExists Exception to be raised when a key exists???
    To my understadning I cannot use PutNoDuplicate() as a primary with secondaries cannot have duplicates configured, and you can only use PutNoDuplicate if there is a sorted duplicate policy...
    Any suggestions?

    Hi,
    The documentation could be a little misleading here. If you specify DuplicatesPolicy.NONE for a database, then duplicates will not be allowed in the database, and when trying to put a key/data pair in the database when the key already exist will fail:
    "Insertion when the key of the key/data pair being inserted already exists in the database will fail. "
    Failing here means that there will be no duplicate created, without any exception being thrown as the default behavior is to "Store the key/data pair in the database, replacing any previously existing key if duplicates are disallowed"; see the Database.Put() methods (BTreeDatabase extends from / is a sub-class of Database).
    You should use the PutNoOverwrite method. When the key that your are trying to insert already exists in the database, you will get a KeyExistException exception.
    Regards,
    Andrei

  • Cant understand this exception

    hai forum,
    Please help me understand this error.
    I am selecting class files using filechooser.When i selected A.class from a directory this exception was thrown.Kindly tell me what this exception says.
    And i dont face this exception with a particular directory which i had so far used for testing my project,which has many class files.
    But for class files which do not belong to this directory, the same exception is thrown.
    And iam selecting jar files in the same manner,but it shows no such exception,be it from any location.
    stacktrace = java.lang.IllegalAccessException: Class com.jutframe.Frame1 can not access a membe
    195e
    r of class A with modifiers ""
         at sun.reflect.Reflection.ensureMemberAccess(Reflection.java:65)
         at java.lang.Class.newInstance0(Class.java:344)
         at java.lang.Class.newInstance(Class.java:303)
         at com.jutframe.Frame1.selectClass_actionPerformed(Frame1.java:403)
         at com.jutframe.Frame1$3.actionPerformed(Frame1.java:298)
         at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1849)
         at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2169)
         at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)
         at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)
         at javax.swing.AbstractButton.doClick(AbstractButton.java:302)
         at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:1000)
         at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:1041)
         at java.awt.Component.processMouseEvent(Component.java:5488)
         at javax.swing.JComponent.processMouseEvent(JComponent.java:3093)
         at java.awt.Component.processEvent(Component.java:5253)
         at java.awt.Container.processEvent(Container.java:1966)
         at java.awt.Component.dispatchEventImpl(Component.java:3955)
         at java.awt.Container.dispatchEventImpl(Container.java:2024)
         at java.awt.Component.dispatchEvent(Component.java:3803)
         at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4212)
         at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3892)
         at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3822)
         at java.awt.Container.dispatchEventImpl(Container.java:2010)
         at java.awt.Window.dispatchEventImpl(Window.java:1766)
         at java.awt.Component.dispatchEvent(Component.java:3803)
         at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
         at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:234)
         at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
         at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
         at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
         at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
    Process exited with exit code 0.
    Thank you all.
    Message was edited by:
    divyabhaskaran

    You are using reflection to create an instance of the class it seems. Perhaps the class you are trying to create an instance of is not public?

  • Exception is being thrown

    I tried out this small code for using hashset but it gives exceptions. I have no idea why is it so?
    import java.util.HashSet;
    import java.util.Iterator;
    import java.util.Set;
    class Students implements Comparable
         private String name;
         private float gpa = 0.0F;
         Students(String n, float g)
              name = n;
              gpa = g;
         Students(){}
         public String getName() {
              return name;
         public float getGpa() {
              return gpa;
         @Override
         public int compareTo(Object o) {
              // TODO Auto-generated method stub
              if(this.getGpa() > ((Students)o).getGpa())
                   return 1;
              else if(this.getGpa() < ((Students)o).getGpa())
                   return -1;
              else
                   return 0;
         public boolean equals(Object o){
              if(this.getGpa() == ((Students)o).getGpa())
                   return true;
              else
                   return false;
         public int hashCode(){
              return (int)(10*gpa);
    public class HashFunction {
         public static void main(String args[]){
              Students s1= new Students("Fred", 3.0F);
              Students s2 = new Students("Sam", 3.1F);
              Students s3 = new Students("Steve", 3.5F);
              Set s = new HashSet();
              s.add(s1);
              s.add(s2);
              s.add(s3);
              Iterator i = s.iterator();
              while(i.hasNext())
                   System.out.println(((Students)i.next()).getName() + " " + ((Students)i.next()).getGpa());
    }The exception trace that is generated is as follows:
    Exception in thread "main" java.util.NoSuchElementException
         at java.util.HashMap$HashIterator.nextEntry(HashMap.java:796)
         at java.util.HashMap$KeyIterator.next(HashMap.java:828)
         at HashFunction.main(HashFunction.java:68)

    roaan wrote:
    I had one more question. I am reading from the file like this
              String word;
              word = file.nextWord();
              try{
                   while(word != null)
                        word = word.toLowerCase();
                        wf.put(word);
                        word = file.nextWord();
              catch(Exception e){
                   e.printStackTrace();
         }Now when the end of the file is reached word contains null and throws a nullpointer exception. I am catching that exception but is there a way out that when my word is null i should simply exit out of the loop (i check that word is not equal to null in my while loop but still it throws an excpetion).Nothing there can throw NPE from word being null. The only possibilities of NPE in the code you posted are
    1. if file is null
    2. if wf is null
    3. if NPE is being thrown inside nextWord(), which has nothing to do with word being null.
    Once you make sure that the above are not happening, that code will be fine and you won't need to catch NPE. And in fact, catching NPE like that is bad practice anyway.

  • Why do I need to catch this exception?

    Hello all
    This is a question about exception handling. I have to build a diary application that lets you save reminders on particular dates using xml. Just to make it a little tougher, I was not allowed to use the Calendar class. This is the code I wrote:
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import java.util.*;
    import java.text.*; 
    import javax.xml.parsers.*;
    import org.xml.sax.*;
    import java.io.*;     
    import org.w3c.dom.*;
    import javax.xml.transform.*;
    import javax.xml.transform.dom.*;
    import javax.xml.transform.stream.*;                                                                                                                                                                                                                         
    import static java.lang.Math.*;
    public class CalendarAssignment extends JFrame implements ActionListener
         int MonthLength [] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
         public JButton [] days = new JButton[43];
         private JLabel lbl, reminderlbl;
         private JPanel top, grid, remindercenter, reminderbottom;
         private JFrame reminderframe;
         private JTextField year1, reminderinput, dayno;
         private JComboBox months;
         private Container container;
         private JButton fetch, save, cancel;
         private Document doc;
         private File file;
         private Node node;
         private String year, month, day;
              public static void main( String[] args ) {
                   CalendarAssignment c = new CalendarAssignment( );
                   c.setSize( 400, 300 );
                   c.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
                   c.show( );
              public CalendarAssignment( ) {
                   int CurrentYear, CurrentMonth;
                   String YearString, MonthString, Now;
                   Date today;
                   container = getContentPane( );
                   container.setLayout( new BorderLayout( ) );
                   SimpleDateFormat DateFormatter;
                   DateFormatter = new SimpleDateFormat( "MM.yyyy" );
                   today = new Date( );
                   Now = DateFormatter.format( today );
                   MonthString = Now.substring( 0,2 );
                   YearString = Now.substring( 3,7 );
                   CurrentMonth = Integer.valueOf( MonthString );
                   CurrentYear = Integer.valueOf( YearString );
                   top = new JPanel( );
                        String [] items = { "January", "February", "March", "April", "May", "June",
                                      "July", "August", "September", "October", "November",
                                      "December" };
                        months = new JComboBox( items );
                        months.setEditable( false );
                        months.setSelectedIndex( CurrentMonth - 1 );          
                        year1 = new JTextField( );
                        year1.setText( YearString );
                        year1.setEditable( true );
                        year1.setHorizontalAlignment( year1.CENTER );
                        fetch = new JButton( "Fetch Month" );
                        fetch.addActionListener( this );
                        top.setLayout( new GridLayout( 1, 3, 20, 0 ) );
                        top.add( months );
                        top.add( year1 );
                        top.add( fetch );
                   grid = new JPanel( );
                        grid.setLayout( new GridLayout( 7, 7, 0, 0 ) );
                        String [] week = { "Mon", "Tue", "Wed", "Thur", "Fri", "Sat", "Sun" };
                        for ( int a = 0; a < 7; a ++ ) {
                                  JLabel lbl = new JLabel( week[a], JLabel.CENTER );
                                  grid.add( lbl );
                        for ( int i = 0; i < 42; i ++ ) {
                                  days[i] = new JButton( );
                                  grid.add( days[i] );
                                  days.addActionListener( this );
                        DrawCalendar( CurrentMonth, CurrentYear );
                        container.add( top, BorderLayout.NORTH );
                        container.add( grid, BorderLayout.CENTER );
              private void DrawCalendar( int SelectMonth, int SelectYear ) {
                        int DisplayMonthLength, Buttons;
                        String ButtonID = "";
                        int OffSet = MonthStart( SelectMonth, SelectYear );
                        DisplayMonthLength = MonthLength [SelectMonth - 1];
                        if ( SelectMonth == 2 )
                             DisplayMonthLength += LeapYear( SelectYear );
                        for ( Buttons = 1; Buttons < 43; Buttons ++ ) {
                             if ( ( Buttons <= OffSet ) || ( Buttons > ( DisplayMonthLength + OffSet ) ) ) {
                                  ButtonID = "";
                                  days[Buttons-1].setEnabled( false );
                             else {
                                  ButtonID = Integer.toString( Buttons - OffSet );
                                  days[Buttons-1].setEnabled( true );
                        days[Buttons-1].setLabel( ButtonID );
                        grid.add( days[Buttons-1] );
              private int LeapYear( int year ) {
                        int FourHundred, OneHundred, Fourth;
                        FourHundred = year % 400;
                        OneHundred = year % 100;
                        Fourth = year % 4;
                        if( ( ( FourHundred == 0 ) ) || ( ( OneHundred != 0 ) && ( Fourth == 0 ) ) )
                             return ( 1 );
                        else
                             return ( 0 );
              private int MonthStart( int Month, int Year ) {
                        int OffSet, LastMonths, BeforeOrAfter, Years;
                        int AllDays = 0;
                        int YearDays = 365;
                        int YearMonths = 12;
                        BeforeOrAfter = Year - 2006;
                        Years = abs( BeforeOrAfter );
                        if( BeforeOrAfter != 0 )
                             BeforeOrAfter = BeforeOrAfter / Years;
                        switch( BeforeOrAfter ) {
                             case 1:
                                  for( int a = 2006; a < Year; a ++ ) {
                                       AllDays += YearDays + LeapYear( a );
                                  AllDays += LastMonthsCalc( Month, Year );
                             break;
                             case -1:
                                  for( int a = 2005; a > Year; a -- ) {
                                       AllDays += YearDays + LeapYear( a );
                                  for( LastMonths = YearMonths; LastMonths >= Month; LastMonths -- ) {
                                       AllDays += MonthLength[LastMonths - 1];
                                       if( LastMonths == 2 )
                                            AllDays += LeapYear( Year );
                             break;
                             default:
                                  if( Month > 1 )
                                       AllDays += ( LastMonthsCalc( Month, Year ) );
                        OffSet = AllDays % 7;
                        if( BeforeOrAfter ==( -1 ) )
                             return( 6 - OffSet );
                        else if( OffSet > 0 )
                             return( OffSet - 1 );
                        else
                             return( 6 );
              private int LastMonthsCalc( int Month, int Year ) {
                        int Counter;
                        int days = 0;
                        for( Counter = 1; Counter < Month; Counter ++ ) {
                             days += MonthLength[Counter - 1];
                             if( Counter == 2 )
                                  days += LeapYear( Year );
                        return( days );
              public void CreateReminder( String buttonID, String yearID, String monthID ) {
                        reminderframe = new JFrame( );
                        reminderlbl = new JLabel( );
                        reminderframe.setLayout( new GridLayout( 2, 1, 0, 0 ) );
                        remindercenter = new JPanel( );
                             reminderlbl = new JLabel( "Please type in reminder to be saved for " + buttonID + " " + monthID + " " + yearID + ":", JLabel.CENTER );
                             reminderinput = new JTextField( 30 );
                             reminderinput.setHorizontalAlignment( reminderinput.CENTER );
                             reminderinput.setEditable( true );
                             remindercenter.setLayout( new GridLayout( 2, 1, 0, 0 ) );
                             remindercenter.add( reminderlbl );
                             remindercenter.add( reminderinput );
                        reminderbottom = new JPanel( );
                             save = new JButton( "Save" );
                             save.addActionListener( this );
                             cancel = new JButton( "Cancel" );
                             cancel.addActionListener( this );
                             dayno = new JTextField( buttonID );
                             dayno.setEditable( false );
                             dayno.setEnabled( false );
                             dayno.show( false );
                             reminderbottom.setLayout( new FlowLayout( ) );
                             reminderbottom.add( save );
                             reminderbottom.add( cancel );
                             reminderbottom.add( dayno );
                        reminderframe.setSize( 500, 75 );
                        reminderframe.add( remindercenter );
                        reminderframe.add( reminderbottom );
                        reminderframe.pack( );
                        reminderframe.show( );
              public void SaveReminder( String dayID, String yearID, String monthID ) throws Exception {
                        file = new File( "Diary.xml" );
                        doc = DocumentBuilderFactory.newInstance( ).newDocumentBuilder( ).parse( file.toURL( ).toString( ) );
                        String year = yearID;
                        String month = monthID;
                        String day = dayID;
                        //System.out.println( year );
                        //System.out.println( month );
                        //System.out.println( day );
                        CreateEntry( doc.getDocumentElement( ) );
                        writeXmlFile( );
              public boolean CreateEntry( Node node ) {
                        Node searchNode;
                        searchNode = getYear( node );
                        if( searchNode == null ) {
                             Element newNode = doc.createElement( "Year" );
                             searchNode = node.appendChild( newNode );
                             newNode.setAttribute( "Id", year );
                        node = searchNode;
                        searchNode = getMonth( node );
                        if( searchNode == null ) {
                             Element newNode = doc.createElement( "Month" );
                             searchNode = node.appendChild( newNode );
                             newNode.setAttribute( "Id", month );
                        node = searchNode;
                        searchNode = getDay( node );
                        if( searchNode == null ) {
                             Element newNode = doc.createElement( "Day" );
                             searchNode = node.appendChild( newNode );
                             newNode.setAttribute( "Id", day );
                        node = searchNode;
                        String entry = reminderinput.getText( );
                        Node textNode = doc.createTextNode( entry );
                        node.appendChild( textNode );
                        return true;
              private Node getYear( Node node ) {
                        node = node.getFirstChild( );
                        while( node != null ) {
                             if(node.getNodeName( ).equals( "Year" ) && String.valueOf( node.getAttributes( ).item( 0 ).getNodeValue( ) ) == year )
                                  return node;
                                  node = node.getNextSibling( );                    
                        return null;
              private Node getMonth( Node node ) {
                        node = node.getFirstChild( );
                        while( node != null ) {
                             if( node.getNodeName( ).equals( "Month" ) && String.valueOf( node.getAttributes( ).item( 0 ).getNodeValue( ) ) == month )
                                  return node;
                                  node = node.getNextSibling( );                    
                        return null;
              private Node getDay( Node node ) {
                        node = node.getFirstChild( );
                        while( node != null ) {
                             if( node.getNodeName( ).equals( "Day" ) && String.valueOf( node.getAttributes( ).item( 0 ).getNodeValue( ) ) == day )
                                  return node;
                                  node = node.getNextSibling( );                    
                        return null;
              private void writeXmlFile( ) throws Exception {
                   Source source = new DOMSource( doc );
                        Result result = new StreamResult( file );
                   Transformer xformer = TransformerFactory.newInstance( ).newTransformer( );
                   xformer.setOutputProperty( OutputKeys.INDENT,"yes" );
                   xformer.setOutputProperty( OutputKeys.DOCTYPE_SYSTEM,"Diary.dtd" );
                   xformer.transform( source, result );
              public void actionPerformed( ActionEvent e ) {
                        String IDButton = e.getActionCommand( );
                        String IDYear = year1.getText( );
                        Object IDMonthObj = months.getSelectedItem( );
                        if( e.getSource( ) == fetch ) {
                             String YearText = year1.getText( );
                             int YearNumber = Integer.valueOf( YearText );
                             int MonthsIndex = months.getSelectedIndex( ) + 1;
                             DrawCalendar( MonthsIndex, YearNumber );
                        else if( e.getSource( ) == cancel ) {
                             reminderframe.hide( );
                        else if( e.getSource( ) == save ) {
                             String IDDay = dayno.getText( );
                             String IDMonth = String.valueOf( IDMonthObj );
                             SaveReminder( IDDay, IDYear, IDMonth );
                        else {
                             String IDMonth = String.valueOf( IDMonthObj );
                             Toolkit.getDefaultToolkit( ).beep( );
                             int n = JOptionPane.showConfirmDialog( null, "Set reminder on this date?", "Question", JOptionPane.YES_NO_OPTION );
                             if( n == JOptionPane.YES_OPTION ) {
                                  CreateReminder( IDButton, IDYear, IDMonth );
    If you compile it, you will realise that I get an error about exception handling. My lecturer gave me an example code of how to do the same thing without using a GUI:
    import javax.xml.parsers.*;
    import org.xml.sax.*;
    import java.io.*;
    import java.util.*;
    import org.w3c.dom.*;
    import javax.xml.transform.*;
    import javax.xml.transform.dom.*;
    import javax.xml.transform.stream.*;
    public class CallDOM
         Document doc;
         File file;
         Scanner input;
         int year, month, day;
         String currentYear, currentMonth;
         public static void main(String args[]) throws Exception
              CallDOM cd=new CallDOM();          
         CallDOM() throws Exception
              file=new File("Diary.xml");
              //create DOM from file
              doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(file.toURL().toString());
              input=new Scanner(System.in);
              System.out.println("1) Create entry");
              System.out.println("2) Read entry");
              System.out.println("3) Show Diary");
              System.out.println("4) Quit");
              int choice=input.nextInt();
              while(choice!=4)
                   switch(choice)
                        case 1: GetDate();CreateEntry(doc.getDocumentElement());break;
                        case 2: GetDate();ReadEntry(doc.getDocumentElement());break;
                        case 3: ShowDiary(doc.getDocumentElement());
                   System.out.println("1) Create entry");
                   System.out.println("2) Read entry");
                   System.out.println("3) Show Diary");
                   System.out.println("4) Quit");
                   choice=input.nextInt();
              writeXmlFile();
         public void GetDate()
              System.out.println("Enter date (dd mm yyyy)");
              day=input.nextInt();
              month=input.nextInt();
              year=input.nextInt();
         public boolean ReadEntry(Node node)
              node = getYear(node);
              if(node==null) return false;
              node = getMonth(node);
              if(node==null) return false;
              node = getDay(node);
              if(node==null) return false;
              node = node.getFirstChild();
              while(node!=null)
                   System.out.println(node.getNodeValue().trim());     
                   node=node.getNextSibling();
              return true;               
         public boolean CreateEntry(Node node)
              Node searchNode;
              searchNode = getYear(node);
              if(searchNode==null)
                   Element newNode = doc.createElement("Year");
                   searchNode = node.appendChild(newNode);
                   newNode.setAttribute("Id",Integer.toString(year));
              node = searchNode;
              searchNode = getMonth(node);
              if(searchNode==null)
                   Element newNode = doc.createElement("Month");
                   searchNode = node.appendChild(newNode);
                   newNode.setAttribute("Id",Integer.toString(month));
              node = searchNode;
              searchNode = getDay(node);
              if(searchNode==null)
                   Element newNode = doc.createElement("Day");
                   searchNode = node.appendChild(newNode);
                   newNode.setAttribute("Id",Integer.toString(day));
              node = searchNode;
              System.out.println("Enter Text");
              String entry=input.next();
              entry+=input.nextLine();
              Node textNode = doc.createTextNode(entry);
              node.appendChild(textNode);
              return true;               
         public void ShowDiary(Node node)
              Stack<Node> stack=new Stack<Node>();
              Node child;
              stack.push(node);
              while(!stack.empty())
                   node = stack.pop();
                   if(ProcessNode(node))
                        child = node.getLastChild();
                        while(child!=null)
                             stack.push(child);
                             child = child.getPreviousSibling();
         private boolean ProcessNode(Node node)
              if(node.getNodeName().equals("Year"))
                   currentYear=node.getAttributes().item(0).getNodeValue();
              if(node.getNodeName().equals("Month"))
                   currentMonth=node.getAttributes().item(0).getNodeValue();
              if(node.getNodeName().equals("Day"))
                   System.out.print(node.getAttributes().item(0).getNodeValue()+"/"+
                                            currentMonth+"/"+currentYear+": ");
                   node=node.getFirstChild();
                   while(node!=null)
                        System.out.println(node.getNodeValue().trim());
                        node=node.getNextSibling();
                   return false;
              return true;               
         private Node getYear(Node node)
              node=node.getFirstChild();
              while(node!=null)
                   if(node.getNodeName().equals("Year")
                        && Integer.valueOf(node.getAttributes().item(0).getNodeValue())==year)
                             return node;
                   node = node.getNextSibling();                    
              return null;
         private Node getMonth(Node node)
              node=node.getFirstChild();
              while(node!=null)
                   if(node.getNodeName().equals("Month")
                        && Integer.valueOf(node.getAttributes().item(0).getNodeValue())==month)
                        return node;
                   node = node.getNextSibling();                    
              return null;
         private Node getDay(Node node)
              node=node.getFirstChild();
              while(node!=null)
                   if(node.getNodeName().equals("Day")
                        && Integer.valueOf(node.getAttributes().item(0).getNodeValue())==day)
                        return node;
                   node = node.getNextSibling();                    
              return null;
         private void writeXmlFile() throws Exception
            Source source = new DOMSource(doc);
            Result result = new StreamResult(file);
            Transformer xformer = TransformerFactory.newInstance().newTransformer();
            xformer.setOutputProperty(OutputKeys.INDENT,"yes");
            xformer.setOutputProperty(OutputKeys.DOCTYPE_SYSTEM,"Diary.dtd");
            xformer.transform(source, result);
    }My question is, why does the exceptions in the example code not need to be caught? And why do I have to catch the exceptions in my code? Several exceptions are thrown in the example code, but there is no catch statement.
    Thanks for any advice!!

    Since your question didn't come with any relevant details, and since you have huge steaming piles of irrelevant code, all I can give is a general answer to "Why do I need to catch this exception?"
    [url http://java.sun.com/docs/books/tutorial/essential/exceptions/index.html]Exception tutorial at http://java.sun.com/docs/books/tutorial/essential/exceptions/index.html
    Here's a quick overview of exceptions:
    The base class for all exceptions is Throwable. Java provides Exception and Error that extend Throwable. RuntimeException (and many others) extend Exception.
    RuntimeException and its descendants, and Error and its descendants, are called unchecked exceptions. Everything else is a checked exception.
    If your method, or any method it calls, can throw a checked exception, then your method must either catch that exception, or declare that your method throws that exception. This way, when I call your method, I know at compile time what can possibly go wrong and I can decide whether to handle it or just bubble it up to my caller. Catching a given exception also catches all that exception's descendants. Declaring that you throw a given exception means that you might throw that exception or any of its descendants.
    Unchecked exceptions (RuntimeException, Error, and their descendants) are not subject to those restrictions. Any method can throw any unchecked exception at any time without declaring it. This is because unchecked exceptions are either the sign of a coding error (RuntimeException), which is totally preventable and should be fixed rather than handled by the code that encounters it, or a problem in the VM, which in general can not be predicted or handled.

Maybe you are looking for

  • Dvi to hdmi works doesn't work with new tv

    I have been searching constantly for several days, and I have not been able to find a solution. I have been using a 32" Vizio HDTV as a monitor for my 2008 macbook pro via DVI to HDMI for over a year now. Recently, we purchased a new 39" Sanyo HDTV f

  • APERTURE SUPPORT

    as a new apple user,G5,2.3,and as a aperture user I am both surprized and troubled by the lack of support and the dead quiet of apple concerning aperture.the members of this forem are some of the most gifted computer users I have found on any form,my

  • Lost data on renamed time capsule acting as an external hard drive

    I have renamed my time capsule which i was using as an external hard drive, and now I cannot find any of my data on it. Have I somehow erased it or can I find my files somewhere?

  • Regular Expressions Problem!!!!!!!!! Please help!

    HI, I need to extract the lines of a aperticular file without the comments. I have a code to catch the comments, But don't know how to how to get the lines without the matching comment lines This is the RegEx to catch the line comments. ((?:/\\*(?:[^

  • Linking of Service to Callable object for execution

    Hi, I've created a process and an action . In action I've inserted few fields which are  mapped to an Interactive adobe form. Once the user submits the Adobe interactive form I have to process the values and update the R/3 database with a service. Wh