Need resolution fo Nullpointer Exception

Hi
I am using Dynamic configuration for getting file name
Error:
RuntimeException in Message-Mapping transformation: Exception:[java.lang.NullPointerException] in class com.sap.xi.tf._I813_Proxy_2_EModMCS_MM_ method DateStamp$[Test, com.sap.aii.mappingtool.tf3.rt.Context@78237823]
I am using following java code but when I am testing the same in mapping.
// get the dynamic values from the container object
DynamicConfiguration conf = (DynamicConfiguration) container.getTransformationParameters().get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
// create a key to access the Filename parameter
DynamicConfigurationKey key = DynamicConfigurationKey.create("http://sap.com/xi/XI/System/File","FileName");
//below you access the file name from header if it was set in the sender file channel
//String filename= conf.get(key);
String fileName = IFRECID; // date stamp is an input field to the UDF
// Here you set the fileName(ur datestamp) in the Header of the message
conf.put(key, fileName);
return fileName;
Please help ! ! !
Edited by: ria sen on Jul 28, 2008 3:18 AM

Hi Ria,
           Please note that as far as the code is concerned .There are some errors in it.
String fileName = IFRECID; // date stamp is an input field to the UDF
This should be
String fileName = "IFRECID";
In java when u r declaring the String literals the correct syntax must be used.
Please check the message type attributes in the file adapter whether it is perfectly done or not.
Finally do the End to End testing rather than standalone testing in the Message mapping tab.
Thanks
Arijit

Similar Messages

  • 1 View linked to 2 CompCont: NullPointer Exception

    Hi,
    Here is the architecture of my app :
    MainView --> CompContA --> ModelA (RFC function A)
    ........|
    ........|---> IntCompB --> CompContB --> Model B (RFC function B)
    And here is the content of the MainView :
    AdviceNumber : [
    Z2_I_Rechercher_Avis_Input.AdviceNumber) | RefreshButton1
    UserId : [Z2_I_Rechercher_Bottin_Input.UserId) | RefreshButton2
    Name : [Z2_I_Rechercher_Avis_Input.Output.It_Infos_Bottin.Name) 
    Now, my application works when I populate an AdviceNumber and press the RefreshButton1.  At the return, the name field is refreshed and I use some Java code to move the UserId that my function returned to the UserId of the screen. This works well.
    Then if I change the value of the UserId in the screen and press the RefreshButton2, the second function returns me another name, and I use some Java code to move this name into the Name field of the screen. This works well too.
    The problem is that I can't use the refreshButton2 first!  I get a NullPointer exception.
    And I know why, it's because the « Output » structure of my Z2_I_Rechercher_Avis_Input is not initialized (since the refreshButton1 has not been used yet).
    But I can't find the right way to code it.
    Can you help me, thanks!
    Message was edited by:
            Emanuel Champagne

    I want the user to click on the button he wants.
    I just need to know how to initialize the Output.Struc1 when the user decides to click on the RefreshButton2 First.
    It's the line in bold that give me the error (but that line works well when the RefreshButton1 is used first!)
      public void onActionRafraichirAvis(com.sap.tc.webdynpro.progmodel.api.IWDCustomEvent wdEvent )
        //@@begin onActionRafraichirAvis(ServerEvent)
         //$$begin ActionButton(-775562010)
         wdThis.wdGetAvisCompController().executeZ2_I_Rechercher_Avis_Input();
         //$$end
         // At the return, we need to refresh the values of the screen with the ones returned by the function.
         // Access to the structure showed on the screen
    IIt_Infos_BottinElement AvisInfosBottinEl = wdContext
                                                                  .nodeIt_Infos_Bottin()
                                                                  .currentIt_Infos_BottinElement();
        // Access to the structure received by the RFC function
        IIt_Z2I053TElement BottinEl = wdContext
                                                             .nodeIt_Z2I053T()
                                                             .currentIt_Z2I053TElement();
         <b>AvisInfosBottinEl.setName(BottinEl.getName());</b>
    Message was edited by:
            Emanuel Champagne

  • Getting nullpointer exception in Tomcap using getRealPath()

    Hi,
    I have the following code snippet, but getting nullpoint exception when I try to read a file in jsp.
    String realPath = this.getServletConfig().getServletContext().getRealPath("//AUDIT_TRAIL.xml");
    File fileDef = new File(realPath);
    Can someone tell me what I am doing wrong, or how i can read a file in jsp that works in tomcat 5

    why the double slash? / is not a special character ( b]backslash is, and so you would need \\)
    The file is sitting in the root of your web app?
    String realPath = this.getServletConfig().getServletContext().getRealPath("/AUDIT_TRAIL.xml");
    // and if it doesn't work, try this to see what it IS looking up
    String realPath1 = this.getServletConfig().getServletContext().getRealPath("/");
    System.out.println(realPath1);If you ware loading a file, you might consider using the getResourceAsStream() method.
    Cheers,
    evnafets

  • JSP - prefix error - need resolution

    Hi all (Charles, Todd, Mike & others),
    @ the ND4 to iPlanet migration project, we have failed to get the JSP
    loaded in iPlanet. The exception displayed in the KJS follows below.
    We are not sure what this implys and how to resolve it (Does it
    require a setting in the deployment tool? or maybe something
    completely different). So, if you could help us better interprete it..
    Thanks,
    Ali..
    Consultant,
    iRise Inc.
    [25/Oct/2000 20:06:52:0] error: Exception: SERVLET-compile_failed:
    Failed in compiling template:
    /aria/ariaTest/CreditCard/pgGWPayFeeCustomer.jsp, JSP Error:
    Descriptor not found for prefix : {0}
    Exception Stack Trace:
    java.lang.Exception: JSP Error: Descriptor not found for prefix : {0}
    at com.netscape.jsp.JSP.addTagprefix(Unknown Source)
    at com.netscape.jsp.JSP.parseAt(Unknown Source)
    at com.netscape.jsp.JSP.parseNext(Unknown Source)
    at com.netscape.jsp.JSP.parseBlock(Unknown Source)
    at com.netscape.jsp.JSP.parse(Unknown Source)
    at com.netscape.jsp.JSP.compile(Unknown Source)
    at com.netscape.server.servlet.jsp.JSPCompiler.JSPtoJava
    (Unknown Source)

    Thanks for the info.
    I made necessary modifications and it worked!
    Ali..
    P.S: I'd confused between /WEB-INF.. & WEB-INF...
    --- In [email protected], "Charles Beckham"
    <charles.beckham@s...> wrote:
    Ali,
    I have seen this error before, it means that it can not resolve the taglibs,
    make sure you
    are not including the jato package (which also includes the taglib
    classes)..the jato package
    should be copied to the APPS directory...also make sure you specified the
    taglib info in the
    war descriptor....the description should be uri : /WEB-INF/jato.tld and
    Loacation: /WEB-INF/jato.tld..
    and finally make sure when you added the jato.tld to the war file it is in
    the root of WEB-INF or in
    other words it should resolve to WEB-INF/...
    If you have any more questions I could have a look at you war file and give
    you some ideas...let me know
    and I'll give you an upload ftp site...
    Cheers
    Charles Beckham
    -----Original Message-----
    [Charles Beckham]
    From: Todd Fast [mailto:<a href="/group/SunONE-JATO/post?protectID=101233080150035167169232031248066208071048">Todd.Fast@S...</a>]
    Sent: Wednesday, October 25, 2000 9:10 PM
    Subject: Re: [iPlanet-JATO] JSP - prefix error - need resolution
    Ali--
    @ the ND4 to iPlanet migration project, we have failed to get
    the JSP
    loaded in iPlanet. The exception displayed in the KJS follows below.
    We are not sure what this implys and how to resolve it (Does it
    require a setting in the deployment tool? or maybe something
    completely different). So, if you could help us better interprete it..
    >>
    [25/Oct/2000 20:06:52:0] error: Exception: SERVLET-compile_failed:
    Failed in compiling template:
    /aria/ariaTest/CreditCard/pgGWPayFeeCustomer.jsp, JSP Error:
    Descriptor not found for prefix : {0}
    Exception Stack Trace:
    java.lang.Exception: JSP Error: Descriptor not found for prefix : {0}
    at com.netscape.jsp.JSP.addTagprefix(Unknown Source)
    at com.netscape.jsp.JSP.parseAt(Unknown Source)
    at com.netscape.jsp.JSP.parseNext(Unknown Source)
    at com.netscape.jsp.JSP.parseBlock(Unknown Source)
    at com.netscape.jsp.JSP.parse(Unknown Source)
    at com.netscape.jsp.JSP.compile(Unknown Source)
    at com.netscape.server.servlet.jsp.JSPCompiler.JSPtoJavaI don't have any significant application deployment experience in iAS, but
    it looks like the taglib descriptor declared in the JSP isn't being found.
    I believe the error message should be "Descriptor not found for prefix:
    jato".
    I can't offer any specific help other than to refer you to Appendix B of
    the
    Migration Survival Guide, which has a walkthrough of deployment of an app
    in
    iAS.
    Todd
    Todd Fast
    Senior Engineer
    Sun/Netscape Alliance
    todd.fast@e...
    eGroups Sponsor
    [email protected]
    [Non-text portions of this message have been removed]

  • Java.lang.NullPointer exception

    We have a report which fetches large amount of data and this report is inviked from JSP page using Crystal JRC.
    Now if we run report and click "next" or "prvious" button befor the rpeort page is rendered with data (or finishesh fetching data). It throws "Java.Lng.NullPOinter Exception".
    Can somebody please point out the problem behind this. are we doing anything wrong?
    Do we need to set any paramter for report
    Thanks,
    Kuldeep

    did  you solve your problem .I have the same .
    Thanks

  • Java.lang.NullPointer exception and operating systems

    Do different operating systems handle the NullPointer exception differently? I have an application that has a screen come up when you click a button. However, the app attempts to process some data before bring up the screen. Sometimes the data is null. The application works fine on linux red hat. However, the screen does not come up on HP Unix. I am not looking to fix the code (even though it may need fixed), but I am looking for an explanation why app works differently in this regard.

    Do different operating systems handle the NullPointer
    exception differently? Nope.
    My guess is that the different OSes have different threading models. In one case X amount of work gets done in the non-GUI thread before the GUI thread tries to do its thing. In the other OS, X+1 amount of work gets done, leading to different states for the GUIs to act on. This is almost certainly a bug in your app.

  • Nullpointer exception when calling Task.getPayloadAsElement()

    Hi all,
    I have deployed an simple bpel in my 10.1.3.1 bpel engine. The proces contains a simpel human tasks, which I want to complete using the human workflow 10.1.3 api. This is the task message which includes my payload:
    initiateTask_ApproveLoanRequestTask
    [2006/12/04 20:59:48]
    Invoked 2-way operation "initiateTask" on partner "TaskService".
    - <messages>
    - <initiateTaskInput>
    - <part xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="payload">
    - <initiateTask xmlns="http://xmlns.oracle.com/bpel/workflow/taskService">
    - <task xmlns="http://xmlns.oracle.com/bpel/workflow/task">
    <title>
    Aprove Loan Request task
    </title>
    - <payload>
    - <approveLoanRequestPayload xmlns="http://xmlns.oracle.com/approveLoanRequest">
    <nameRequester>
    Tom
    </nameRequester>
    <loanRequest>
    1000
    </loanRequest>
    <currency/>
    <isApproved/>
    </approveLoanRequestPayload>
    </payload>
    <taskDefinitionURI>
    http://xesoa1.iteye.local:8894/orabpel/default/approveLoanRequest/1.0/ApproveLoanRequestTask/ApproveLoanRequestTask.task
    </taskDefinitionURI>
    <creator>
    Tom
    </creator>
    <ownerUser>
    bpeladmin
    </ownerUser>
    <ownerGroup/>
    <priority>
    3
    </priority>
    <identityContext/>
    <userComment/>
    <attachment/>
    - <processInfo>
    <domainId>
    default
    </domainId>
    <instanceId>
    100008
    </instanceId>
    <processId>
    approveLoanRequest
    </processId>
    <processName>
    approveLoanRequest
    </processName>
    <processType>
    BPEL
    </processType>
    <processVersion>
    1.0
    </processVersion>
    </processInfo>
    <systemAttributes/>
    <systemMessageAttributes/>
    <titleResourceKey/>
    <callback/>
    <identificationKey/>
    </task>
    </initiateTask>
    </part>
    </initiateTaskInput>
    - <initiateTaskResponseMessage>
    - <part xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="payload">
    - <initiateTaskResponse xmlns="http://xmlns.oracle.com/bpel/workflow/taskService">
    - <workflowContext xmlns="http://xmlns.oracle.com/bpel/workflow/common">
    - <credential>
    <login>
    bpeladmin
    </login>
    <identityContext>
    jazn.com
    </identityContext>
    </credential>
    <token>
    13PdID5l3hQSt5QrDDwIyW0GK01koYzxtTLKFTV8e75uWJsSEkJuTRpE7+PJfcK3VL1koQYczeHlUE3fl4yvA9GAsezTFonLuQtb84khaEJpaOUFsBflwg1c5n7J/JE37eJW6HeqoT2utGTwWCfWP3Pm9InF5TUTQkqsguXpd29z+qEllTtnbJAbSRtyeUu5TtQGzcQcBWedYko8rql7XGSFba/O5DJriVW/nrgH7oC5c4diUencB0aVZzWTW2jrOogcTxbQfk8=
    </token>
    </workflowContext>
    - <task xmlns="http://xmlns.oracle.com/bpel/workflow/task">
    <title>
    Aprove Loan Request task
    </title>
    - <payload>
    - <approveLoanRequestPayload xmlns="http://xmlns.oracle.com/approveLoanRequest">
    <nameRequester>
    Tom
    </nameRequester>
    <loanRequest>
    1000
    </loanRequest>
    <currency/>
    <isApproved/>
    </approveLoanRequestPayload>
    - <approveLoanRequestPayload xmlns="http://xmlns.oracle.com/approveLoanRequest">
    <nameRequester>
    Tom
    </nameRequester>
    <loanRequest>
    1000
    </loanRequest>
    <currency/>
    <isApproved/>
    </approveLoanRequestPayload>
    </payload>
    <taskDefinitionURI>
    http://xesoa1.iteye.local:8894/orabpel/default/approveLoanRequest/1.0/ApproveLoanRequestTask/ApproveLoanRequestTask.task
    </taskDefinitionURI>
    <creator>
    Tom
    </creator>
    <ownerUser>
    bpeladmin
    </ownerUser>
    <ownerGroup/>
    <priority>
    3
    </priority>
    <identityContext>
    jazn.com
    </identityContext>
    <userComment/>
    <attachment/>
    - <processInfo>
    <domainId>
    default
    </domainId>
    <instanceId>
    100008
    </instanceId>
    <processId>
    approveLoanRequest
    </processId>
    <processName>
    approveLoanRequest
    </processName>
    <processType>
    BPEL
    </processType>
    <processVersion>
    1.0
    </processVersion>
    </processInfo>
    - <systemAttributes>
    <approvalDuration>
    0
    </approvalDuration>
    <assignedDate>
    2006-12-04T20:59:47.547+01:00
    </assignedDate>
    - <assigneeGroups>
    <id>
    Supervisor
    </id>
    </assigneeGroups>
    <createdDate>
    2006-12-04T20:59:47.555+01:00
    </createdDate>
    <digitalSignatureRequired>
    false
    </digitalSignatureRequired>
    <expirationDate/>
    <inShortHistory>
    true
    </inShortHistory>
    <isGroup>
    true
    </isGroup>
    <numberOfTimesModified>
    1
    </numberOfTimesModified>
    <passwordRequiredOnUpdate>
    false
    </passwordRequiredOnUpdate>
    <pushbackSequence>
    -1
    </pushbackSequence>
    <secureNotifications>
    false
    </secureNotifications>
    <state>
    ASSIGNED
    </state>
    <taskId>
    2043f79925decda1:559dec6a:10f4e2a1a3b:-7ac9
    </taskId>
    <taskNumber>
    10063
    </taskNumber>
    - <updatedBy>
    <id>
    Tom
    </id>
    </updatedBy>
    <updatedDate>
    2006-12-04T20:59:47.555+01:00
    </updatedDate>
    <version>
    1
    </version>
    <versionReason>
    TASK_VERSION_REASON_INITIATED
    </versionReason>
    <taskDefinitionId>
    default_approveLoanRequest_1.0_ApproveLoanRequestTask
    </taskDefinitionId>
    <taskDefinitionName>
    ApproveLoanRequestTask
    </taskDefinitionName>
    </systemAttributes>
    <systemMessageAttributes/>
    <titleResourceKey/>
    <callback/>
    <identificationKey/>
    </task>
    </initiateTaskResponse>
    </part>
    </initiateTaskResponseMessage>
    </messages>
    When I want to parse the payload to binding objects the method task.getPayloadAsElement returns a nullpointer exception. I'm using the Remote client variant of the API.
    I hope some one can help me on this issue.
    Thanks in advance!
    -Tom

    The task payload is not populated when fetching a list of tasks using the queryTasks() method. You need to explicitly call getTaskDetailsById() or getTaskDetailsByNumber() to retrieve the complete task with the payload. Then the method task.getPayloadAsElement() should return you the payload as expected.

  • Java.NullPointer.Exception for UserUIConfig import

    Hi All,
    The moment I imported UserUIConfig.xml into IDM, my accounts page threw a java.NullPointer Exception.
    Does this file needs any tweaking to do a reimport?
    Any ideas would be appreciated.
    Thank You.
    G

    Crossposted:
    http://forum.java.sun.com/thread.jspa?threadID=5150105
    Would-be posters: Do not answer this thread. Go to the crosspost instead, where a discussion has already started.

  • Nullpoint exception when population HtmlPanelGrid

    Hello All.
    I Have battled with this problem for two solid days now, I realy need you guys help on this one. The following code workes in another part of my program but on this part, I just can't get it right and end up with a nullpoint exception.
    Here are some code:
    test.jsp
    <%@taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
    <%@taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
    <f:view>
    <html>
    <head>
    <title>Test</title>
    </head>
    <body bgcolor="#ffffff">
    <h:form id="testform">
    <h:panelGrid id="listData" binding="#{TestBean.listData}" />
    </h:form>
    </body>
    </html>
    </f:view>
    TestBean.class (modified to sute forum posting)
    package beans.backingBeans;
    import beans.BeanFactory;
    //do relevant imports
    public class TestBean {
    private HtmlPanelGrid listData; //panelgrid that holds data
    public CreateSurveyBean() {
    populateData();
    public HtmlPanelGrid getListData() {
    return listData;
    public void setListData(HtmlPanelGrid listData) {
    this.listData = listData;
    * fetch data to HtmlPanelGrid
    * @param
    * @return void
    public void populateData() {
    Application application = FacesContext.getCurrentInstance().getApplication(); //getApplication context
    List children = getListData().getChildren(); //get children of component
    children.clear(); //clear children
    List dataSet = BeanFactory.geInstance().getData(); //get populationData from factoryBean
    for(int i=0; i<questionSet.size(); i++) {
         //irrelevant code that create som content for HtmlPanelGrid
    children.add(item);
    faces-config.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE faces-config PUBLIC "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.1//EN" "http://java.sun.com/dtd/web-facesconfig_1_1.dtd">
    <faces-config xmlns="http://java.sun.com/JSF/Configuration">
    <managed-bean>
    <description>SurveyBean</description>
    <display-name>SurveyBean</display-name>
    <managed-bean-name>SurveyBean</managed-bean-name>
    <managed-bean-class>beans.backingBeans.SurveyBean</managed-bean-class>
    <managed-bean-scope>session</managed-bean-scope>
    </managed-bean>
    </faces-config>
    Nullpoint exception (from the webserver logfile)
    java.lang.NullPointerException     at com.sun.faces.el.ValueBindingImpl.getValue(ValueBindingImpl.java:206)     at com.sun.faces.el.ValueBindingImpl.getValue(ValueBindingImpl.java:154)     at com.sun.faces.application.ApplicationImpl.createComponent(ApplicationImpl.java:386)     at javax.faces.webapp.UIComponentTag.createComponent(UIComponentTag.java:999)     at javax.faces.webapp.UIComponentTag.createChild(UIComponentTag.java:1026)     at javax.faces.webapp.UIComponentTag.findComponent(UIComponentTag.java:739)     at javax.faces.webapp.UIComponentTag.doStartTag(UIComponentTag.java:429)     
    The exception seems to come from the row:
    List children = getListData().getChildren(); //get children of component
    in the testBean.class file. As I said before. This has worked in other parts of the program but now it doesn't. After some debugging runs I have found out that the getListData -method indead returns null, But I can't figure out why.

    Well, Sometimes the question is more complex than the answer ;-)
    Thanks for the help.
    It still puzzels me that I don't have to instanciate the HtmlPanelGrid at the other jsf page in my app. It seems as it gets instanciated by some pagical means because I don't have a
    HtmlPanelGrid data = new HtmlPanelGrid();
    or
    data = foo;
    Anywhere.
    The only thing that separates the two jsf pages from eachother is that in the case that workes, the page reloads several times before I present the HtmlPanelGrid. Can this be the answer somehow?
    Well... Anyhwo. It workes!

  • NullPointer exception in request.getParameter().indexof(.....) only in 6.1

    Hi
    I have one full working application (containing WAR + JAR) files.
    Right now this application is working absolutely fine in weblogic 6.0 sp1 on
    WINNT & Solaris.
    In this application, we accept events to save data from external
    applications like excel files.
    Now code in JSP is -->
    Line 1: String Data = request.getParameter("data");
    Line 2: Data.indexof(........);
    Now in case of weblogic 6.1, i am getting NullPointer Exception in line 2,
    but I am NOT getting any exception in case of weblogic 6.0sp1.
    To my surprise, I am also printing request obj parameters values, whenever
    jsp get called from external source, there it is printing value of "data".
    I am totally clueless!!
    Any idea plz?
    Ashish Jain

    Looking very closely at request object contents..
    Wht i am sending (posting) from excel file-->
    xmlData=<?xml version="1.0" encoding="UTF-8"?><reportSheet bu="SHKXXX"
    report="PBrandContr" sheet=
    "PBrandContr" year="2002" coType="A" status="0" brId="PIC" act_brId="PIC"
    opt="P" ></reportSheet>
    But 6.1 interprets like this ---->
    key is --------> xmlData=<?xml version="1.0" encoding="UTF-8"?><reportSheet
    bu="SHKXXX" report="PBrandContr" sheet=
    "PBrandContr" year="2002" coType="A" status="0" brId="PIC" act_brId
    And Value is -------> "PIC" opt="P" ></reportSheet>
    This thing is causing all problems.
    I am not observing this kinda behaviour in 6.0sp1.
    Thanks
    Ashish Jain
    "Ashish Jain" <[email protected]> wrote in message
    news:[email protected]..
    Hi
    I have one full working application (containing WAR + JAR) files.
    Right now this application is working absolutely fine in weblogic 6.0 sp1on
    WINNT & Solaris.
    In this application, we accept events to save data from external
    applications like excel files.
    Now code in JSP is -->
    Line 1: String Data = request.getParameter("data");
    Line 2: Data.indexof(........);
    Now in case of weblogic 6.1, i am getting NullPointer Exception in line 2,
    but I am NOT getting any exception in case of weblogic 6.0sp1.
    To my surprise, I am also printing request obj parameters values,whenever
    jsp get called from external source, there it is printing value of "data".
    I am totally clueless!!
    Any idea plz?
    Ashish Jain

  • Nullpointer exception... any help would be appreciated

    In advance, I apologize for any ignorance which I may obviously have... I'm in the process of learning Java, and am used to C/C++... In any case, I'm running into a nullpointer exception while 'compiling', which I'm having trouble figuring out... I'll list everything below, but this message will be rather long, as I will try to include everything I can. For this reason, I will ask my questions here, at the top:
    1) A null pointer exception, I believe, is generated when something is being referenced which is currently null, for example "a=null; a.b;" yields a null pointer exception. However, is there any other way that one is generated?
    2) Are there methods to figure out what/why something is null other than simply looking at it? As shown below, it seems that just looking at it runs you in a circle from line to line, file to file, which leads you back to the beginning where nothing is actually null... (I'm probably just not seeing it, but that seems to be what's happening to me)
    So now, on to the actual code:
    The following is a printout of the debugging info:
    ~/bin/jdk*/bin/java -classpath classes jamie.Main
    java.lang.NullPointerException
    at jamie.Main.Sys_Log(Main.java:110)
    at jamie.Main.Setup(Main.java:142)
    at jamie.Main.main(Main.java:54)
    Exception in thread "main" java.lang.NullPointerException
    at jamie.Main.Sys_Log(Main.java:110)
    at jamie.Main.Shutdown(Main.java:182)
    at jamie.Main.main(Main.java:92)And a short excerpt of each. (*) indicates line which error originates:
    20    )   private static Log                sys_log;
    108  )   static void Sys_Log(String msg)
    109  )   {
    110*)        sys_log.Log(msg);
    111  )   }
    142*)   Sys_Log("Server warming up...");
    182*)   Sys_Log("Server shutting down...");
    50  )     public static void main(String[] args)
    51  )     {
    52  )          try
    53  )          {
    54*)                Setup();
    85  )     catch(Exception e)
    86  )     {
    87  )          e.printStackTrace(System.out);
    88  )          err_log.Log(e.toString());
    89  )     }
    90  )     finally
    91  )     {
    92*)            Shutdown();
    93  )      }Now, various things that I have tried, and their result (you can probably skip this section, as these were mostly futile efforts):
    What seems odd to me is that the initial error is on line 110, which is the logging function Sys_Log. Since it's a null pointer exception, I would assume that sys_log is null? and thus in calling Log we're generating that error... I'm not entirely sure that that makes sense, though. Additionally, and what I find odd, is that if I change it to what I will list below, I get a slew of other seemingly unrelated problems:
    20    )   private static Log                sys_log;
    108  )   static void Sys_Log(String msg)
    109  )   {
    110#)        if (sys_log!=null)
    111  )        sys_log.Log(msg);
    112  )   }This results in a problem with function Err_Log, which I change the same way, resulting in the following:
    java.lang.NullPointerException
            at jamie.Area_LUL.Load(Area_LUL.java:23)
            at jamie.Main.Setup(Main.java:161)
            at jamie.Main.main(Main.java:55)
    Exception in thread "main" java.lang.NullPointerException
            at jamie.Main.Shutdown(Main.java:186)
            at jamie.Main.main(Main.java:93)In Main.java the following lines are generating the error:
    160  )   lul = new Area_LUL();
    161*)   lul.Load();And in Area_LUL.java I also have the following:
    14  )class Area_LUL implements LoaderUnloader
    15  ){
    16  )    public void Load()
    17  )    {
    18  )        try
    19  )        {
    20  )            areadir = new File("./areas/");
    21  )            SAXParser p = SAXParserFactory.newInstance().newSAXParser();
    22  )
    23*)            for(File curr : areadir.listFiles(new Area_Filter()))
    24  )            {
    25  )                p.parse(curr, new XMLParser());
    26  )            }
    27  )        }Where in the above, the for statement is generating the null pointer exception... which would tell me that areadir is null, however it is defined as new File("./areas/"); Also, lul (defined as new Area_LUL(); is generating the same error, though it is clearly defined in Area_LUL.java at the top of the last excerpt.
    Also, LoaderUnloader is defined in another file as follows:
    interface LoaderUnloader
        void Load();
        void Unload();
    }which are defined in Area_LUL in Area_LUL.java .
    A major theory which I currently have is that the compiler is beginning with my main.java file, and not seeing the class definition in another file, and thus attributing the class obj I create as null, which is causing the error, but I also am not sure if this is possible...
    My imports for Main.java are as follows:
    package jamie;
    import java.io.*;
    import java.util.*;I'm not entirely sure what the package is including, however I do have a jamie.jar file in another directory (../../dist) (could be referencing that?). Also, to compile the source I am using the following command:
    ~/bin/jdk*/bin/java -classpath classes jamie.MainHowever my classpath (I believe) isn't set to include all my files in the given directory. I wouldn't believe that this would be an issue, however if it could possibly be causing this, I can figure out how to set it properly. Also, this should mean I'm starting with Main.java, and perhaps I am right in concluding that it isn't referencing Area_LUL in another file properly, which is setting it as null?
    In any case... Any help would be greatly appreciated. This has been a bit of a struggle for about a month now, trying various resources, moving things around, etc... Thanks so much for your time in reading,
    -Jess

    I'm not able to follow the program flow from your post. Please create a small standalone program that exhibits the problem and post that back here.
    Your assumption re a NPE is correct, that's the only way they're generated.
    There are no "canned" methods to resolve NPEs. The best solution is to put System.out.println statements for all of the involved objects and variables immediately preceeding the error line (in this case, 110) and something will show null. Usually that's enough info to backtrace to the real cause.

  • 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.

  • Java.lang.NullPointer Exception in File-RFC-File wtihout BPM scenario

    Hi All,
    I have implemented scenario File - RFC - File without BPM in PI7.1 according to below link by bhavesh
    [File - RFC - File without a BPM - Possible from SP 19.;
    but I am getting error java.lang.NullPointer Exception  in Audit log of sender communication channel when it enters in ResponseOnewayBean.
    I had implemented the same in PI 7.0 but there it was working fine.
    Is there any limitations on the use of the above beans in PI7.1 as I could see two more threads on the same unanswered yet.
    Please help me in resolving as it is priority task for me
    Thanks,
    Amit

    Sometime back I saved this SAP Note 1261159 for this error. Not sure if it is still valid. Try to get it implemented.
    Regards,
    Prateek

  • Help with nullPointer exception

    Hi,
    I would like some help identifying and error in the code below. Im getting a nullPointer exception at the location specified in the code. Im adding elements to a tableModel. What puzzles me is that the strings I add to the model does contain values. And it does not complain about adding them. Perhaps this is just a simple error, and you more experinced programmars are probably loughing at me ;)
    void getTests() {
          String[] idNummer = getDirectory(); //gets filenames from a directory
          for (int i = 0; i < idNummer.length; i++) {
             idNummer[i] = idNummer.substring(idNummer[i].lastIndexOf(dataSeparetor) + 1, idNummer[i].length());
    // just sorts out specific parts of the filenames
    for (int i = 0; i < idNummer.length; i ++) {
    System.out.println(idNummer[i]); //I print the sorted filenames and they not null
    testModel.addElement(idNummer[i]); //I add them to the table model
    testNr.setModel(testModel); //and gets a nullPoint exception here??

    I'm sorry, you mean testNr. Don't pay any attention to the above post. it is also declared directly in the class:
    public class GUI extends JFrame implements EventListener  {
      JList testModel;
    }and creates an instance here:
    public GUI {
    testModel = new DefaultListModel();
    getTests();
    testNr = new JList(testModel);
          testNr.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION);
          testNr.setLayoutOrientation(JList.VERTICAL);
          testNr.setPreferredSize(new Dimension(80, 80));
          testNr.addListSelectionListener(new ListSelectionListener() {
             public void valueChanged(ListSelectionEvent event) {
          leftPanel.add(testNr, BorderLayout.EAST);
    }

  • ArrayList nullpointer exception

    I'm creating a game called bubblebreaker in Java, with the principle off model, view and controller classes.
    In my model class I create a list of bubble objects. In the view I make these bubbles visible and in the controller class I react on external events (mouseclicks, ...)
    My design is almost finished but I'm having some troubles removing my selected bubbles.
    When I have selected my bubbles I want to remove them with another click on that bubble.
    In the method deleteBub(Bubble delete) I will use the "set" method from the arraylist and make the bubble object "null":
    protected void deleteBub(Bubble delete) {
            bubbleList.set(delete.getNumber(), null);
    }This is the error:
    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    +     at Model.deleteBub(Model.java:69)+
    It also points to this method:
    In the view class I check if the object is null:
    protected void drawBub(Bubble bubb, Graphics g) {
                if(bubb!=null) {
                    g.setColor(bubb.getColor());
                    g.fillOval(20*bubb.getX(), 20*bubb.getY(), 20*model.getRadius(), 20*model.getRadius());
                else System.out.println(bubb.getNumber() + " is null");
    }There are no compilation errors. I just get a nullpointer exception when I click the second time on a bubble, so when it should be made null.
    Edited by: Lektroluv on May 5, 2009 2:22 AM

    I think I'm not on the same level as you.
    The set command replaces the original bubble object with null, wright?
    So for example the list changes from this:
    new Bubble(.....)
    new Bubble(.....)
    new Bubble(.....)
    new Bubble(.....)
    ...to this:
    new Bubble(.....)
    null
    new Bubble(.....)
    null
    new Bubble(.....)
    new Bubble(.....)
    ...The second list isn't good, because it has "nulls" in it?!?!? --> nullpointer exception?
    What I've done next is in stead off replacing it with null, replacing it with new Bubble(BLACK ...)
    new Bubble(.....)
    new Bubble(BLACK ...)
    new Bubble(.....)
    new Bubble(BLACK ...)
    new Bubble(.....)
    new Bubble(.....)
    ...Edited by: Lektroluv on May 5, 2009 8:37 AM
    Edited by: Lektroluv on May 5, 2009 8:37 AM

Maybe you are looking for

  • ESW 520 802.1x re authentication problem

    Hello I have problem with ESW 520, on 802.1x authentication. The problem is when host authenticates successfully it works about couple of minutes, after it truest too authenticate again but it lags. On network interface it shows notification that if

  • Server Health Checkup

    Hi Gurus, Can any give tell me what is performance tunning in SAP and What are the major steps involved in a Server Health checkup for SAP servers which has more than 2000 users. Regards, Pradeep

  • User exit for outgoing IDOC

    Hi friends, I want to find user exit for outbound idoc INVOIC, but i dont to how to do that. Please gve ur suggestions

  • Layered Photoshop files with alpha channels

    I wondered if anyone had a work around for the problem of layered PSD files with alpha channels not previewing properly in Aperture 3.1.1. I know it's been an issue in previous versions of Aperture but I thought Apple would have sorted this by now, o

  • What to app for a qs1

    I would like to app for a QS1 card. I got a vehicle I Apr 14 with no lates ( only reported to Ex ). I traded it in in Apr 15 no lates ( reports to all 3 CRAs )Apr 15 received a CC thru the CU I got the auto loan thru 500 CLI to 2000 2weeks ago. 2week