Default initialisation of member variables and local variables

I don't understand why member variables are initialized with default values by Java.
Objects are initialized with "null" and primitives with "0", except boolean, which is initialized with "false".
If these variables are used locally they are not initialized. The compiler requires them to be initialized by the programer, for example "String s = null".
Why? What is the use of that difference?
And why are arrays always initialized with default values, no matter if they are member variables or local variables? For example String[] s = new String[10]; s[0] to s[9] are initialized with "null", no matter if "s" is a local or member variable.
Can someone please explain that strange difference, why it is used? To me it has no sense.

Most of the time I have to initialize a local variable
with "String s = null" in order to use it because
otherwise the compile would complain. This is a cheap
little trick, but I think everyone uses it.
I wouldn't agree with "most of the time". The only cases where it is almost necessary to do that is when the variable should be initialized in a loop or a try-catch statement, and that doesn't happen too often.
If local variables were initiliazed automatically without a warning it would be a Bad Thing: the compiler could tell when there is a possibility that a variable hasn't been assigned to and prevent manymanymany NullPointerExceptions on run time.
And you didn't answer me why this principle is not
used with arrays if it is so useful as you think.
Possibly it is much more difficult to analyse the situation in the case of arrays; what if values are assigned to the elements in an order that depends on run time properties such as values returned from a random number generator.
The more special rules one has to remember, the more
likely one makes errors.I agree, but what is the rule to remember in this case?

Similar Messages

  • How to change value of instance variable and local variable at run time?

    As we can change value at run time using debug mode of Eclipse. I want to do this by using a standalone prgram from where I can change the value of a variable at runtime.
    Suppose I have a class, say employee like -
    class employee {
    public String name;
    employee(String name){
    this.name = name;
    public int showSalary(){
    int salary = 10000;
    return salary;
    public String showName()
    return name;
    i want to change the value of instance variable "name" and local variable "salary" from a stand alone program?
    My standalone program will not use employee class; i mean not creating any instance or extending it. This is being used by any other calss in project.
    Can someone tell me how to change these value?
    Please help
    Regards,
    Sujeet Sharma

    This is the tutorial You should interest in. According to 'name' field of the class, it's value can be change with reflection. I'm not sure if local variable ('salary') can be changed - rather not.

  • Global and Local Variable

    Hi Gurus, I was unable to see where I can define local and global variables? I see that help.sap.com documentation but where do I create. All variables that I create, are global because, they are visible to all and they all can use it? Any help would be greatly appreciated.

    As far as I know, Variables are re-usable objects that are not dependent upon InfoProvider. When I look at this link
    http://help.sap.com/saphelp_nw04/helpdata/en/5c/8db07d555411d189660000e829fbbd/frameset.htm
    it talks about Global and Local variable? Is this different than what we use in Query Designer?

  • What's the difference between global variables and instance variables?

    hi im just a biginner,
    but what is the difference between these two?
    both i declare them above the constructor right.
    and both can access by any method in the class but my teacher said
    global variables are not permitted in java....
    but i don't know what that means....and i got started to confuse these two types,,
    im confusing.......
    and why my teacher said declaring global variables is not permitted,,,,,,
    why.....

    instance variables are kindof like Global variables. I'm not surprised you are confused.
    The difference is not in how they are declared, but rather in how they are used.
    There are two different "styles" of programming
    - procedural programming.
    - object oriented programming.
    Global variables are a term from Procedural programming.
    In this style of programming, you have only one class, and one "main" procedure. You only create one instance of the class, and then "run" it.
    There is one thread of control, which goes through various methods/procedures to accomplish your task.
    In this style of programming instance variables ARE "global" variables. They are accessible to all methods. There is only one instance of the class, and thus only one instance of the variables.
    Global variables are "bad" BECAUSE you can change them in any method you like. Even from places that shouldn't have to. Also if you use the same name as a global variable and a local variable, you can cause great trouble. This can lead to very subtle bugs, as the procedures interact in ways you don't expect.
    The preferred method in procedural programming is to pass the values as parameters to the methods, and only refer to the parameters, and local variables. This means that you can track exactly what your method is doing, and what it affects. It makes it simpler to understand. If you use global variables in your methods, it becomes harder to understand.
    So when are instance variables not global variables?
    When you are actually using the class as an Object, rather than just a program to run. If you are creating multiple instances of an object, all with different values for their instance variables, then they are not global variables. For instance you declare a Person object with an attribute "firstname". Your "main" program then creates many instances of the Person object, each with their own "firstname"
    I guess at the end of all this, it comes down to definitions.
    Certainly you can write procedural code in java. You can treat your instance variables, for all intents and purposes like global variables.
    I can only think to show a sort of example
    public class Test1
       User[] users;
       public void printUsers(){
         // loop through and print all the users
         // uses a global variable
          for(int i=0; i<users.length; i++){
            users.printUser();
    public void printUsers(User[] users){
    // preferred method - pass it the info it needs to do the job
    for(int i=0; i<users.length; i++){
    users[i].printUser();
    public Test1(){
    User u1 = new User("Tom", 20);
    User u2 = new User("Dick", 42);
    User u3 = new User("Harry", 69);
    users = new User[3];
    users[0] = u1;
    users[1] = u2;
    users[2] = u3;
    printUsers();
    printUsers(users);
    public static void main(String[] args)
    new Test1();
    class User{
    String firstName;
    int age;
    public User(String name, int age){
    this.firstName = name;
    this.age = age;
    public void printUser(){
    // here they are used as instance variables and not global variables
    System.out.println(firstName + " Age: " + age);
    Shit thats a lot of typing, and I'm not even sure I've explained it any good.
    Hope you can make some sense out of this drivel.
    Cheers,
    evnafets

  • What is the difference between Instance variable and Global variable?

    Hi folks,
    Could you please explain me, "what is the difference between Instance variable and Global variable?"
    Are they really same or not?
    --Subbu                                                                                                                                                                                                                                                                                                               

    Hi flounder,
    I too know that there is no such a term GLOBAL in java.
    generally people use to say a variable which is accessible throught out the class or file has global access
    and that will be called as a global variable...
    my point is very much similar to what Looce said.
    In simple that is not a technical term, but just a causual term.
    In technically my question is, "What is the difference between a instance variable and public variable?".
    Hi looce,
    Thanks for the reply. even thats what my understanding too....in order to confirm that i raised this question..
    Your reply has given a clear answer...... thanks again.
    --Subbu                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

  • Performance with globle variable and local var.

    hi anyone
    i just have one performance question about the globle var and local. is having a globle var that is initialized with 'new' at one place better than having local var that is initialzed with 'new' in several places? for example, i have a access var that is initialzed with DB connection. should i have it as a globle var? or put it in the functions where it is needed, and initialize it with DB connection? in both cases, i need to use new operator.
    thanks in advance.

    First , don't use the term "global variable". It is misleading and not an official part of the Java nomenclature. I think the term used should be ( and correct me if I'm wrong ) instance variable. In C and C++ globale variables really are global - they can be accessed by any and all classes which include the header file.
    OK, having got that out of my system, back to the question. The value is gotten from a database, right? Whether you make it an instance variable or not depends on you design and whether the value in the database is likely to change during the lifetime of the instance.
    For example, if this class is a superclass of another, and the cild needs to know the value of the variable, it is often convenient to make it an instance variable so the subclass can access it directly.
    But if the value is likely to change, then you may want to have a getter method which returns the current value in the database.
    The latter will clearly have more overhead associated with it since you would need to get the value each time, but it is probably safer than having an instance variable.

  • Final attributes and local variables - performance ??

    Hi all,
    I and a colleague have done some performance testing regarding the use of final attributes and final local variables, e.g.
    with final:
    public class MyClass {
      private final int i;
      public final void myMethod() {
        final int j = 5;
        // do something with i and j
    }vs. non-final:
    public class MyClass {
      private int i;
      public final void myMethod() {
        int j = 5;
        // do something with i and j
    }I couldn't find any speed differences in a small test program, but my colleague did so in his application. Who is right ??
    Still, I will have do some formal testing next week and I will post the results.
    I'd prefer the version using final anyway because I find it better readable, but the issue I am having is whether I'll spend 2-3 days going through the program making everything final or not.

    I made some tests with final arguments to a method: I could not find any difference between final and non-final arguments. code is posted below
    import java.io.*;
    import java.net.*;
    import java.rmi.*;
    import java.util.*;
    import javax.ejb.*;
    import javax.naming.*;
    import javax.rmi.PortableRemoteObject;
    import junit.framework.*;
    import junit.extensions.*;
    public final class FinalVariablesTest extends TestCase /* from junit */ {
         * Constructors
        public FinalVariablesTest(String name) {
            super(name);
         * helper methods/classes
        protected void setUp() throws Exception {
            super.setUp();
        protected void tearDown() throws Exception {
            super.tearDown();
         * Test Suite
        public static void main(String[] args) {
         junit.textui.TestRunner.run(suite());
        public static Test suite() {
            return new TestSuite(FinalVariablesTest.class);
         * Test Cases
        /** tests the effect of passing an (final or non-final) int parameter
         to a method which uses the variable in a for loop.
         <p>
         Linux System:
         cat /proc/cpuinfo
         processor       : 0
         vendor_id       : GenuineIntel
         cpu family      : 6
         model           : 8
         model name      : Pentium III (Coppermine)
         stepping        : 1
         cpu MHz         : 501.146
         cache size      : 256 KB
         fdiv_bug        : no
         hlt_bug         : no
         sep_bug         : no
         f00f_bug        : no
         coma_bug        : no
         fpu             : yes
         fpu_exception   : yes
         cpuid level     : 2
         wp              : yes
         flags           : fpu vme de pse tsc msr pae mce cx8 sep mtrr pge mca cmov pat pse36 mmx fxsr xmm
         bogomips        : 999.42
         </pre>
         <p>
         Results:
         <pre>
         java version "1.4.0"
         Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.0-b92)
         Java HotSpot(TM) Client VM (build 1.4.0-b92, mixed mode)
         final     non-final
         498     500
         491     494
         491     493
         491     494
         534     494
         492     494
         491     494
         492     493
         491     494
         495     494
         4966     4944 (Totals)
         </pre>
        public final void testIntParametersToForLoop() {
         final int RUNS = 10;
         final int INNER = 1000000;
         final int OUTER = 10;
         System.out.println("-----------------------");
         System.out.println("testIntParametersToForLoop");
         for(int i=0; i<RUNS; i++) {
             outerFinalIntParametersToForLoop(INNER, OUTER);
             outerNonFinalIntParametersToForLoop(INNER, OUTER);
        private final void outerFinalIntParametersToForLoop(final int INNER,
                                       final int OUTER) {
         // with final var in for loop
         long start0 = System.currentTimeMillis();
         for(int i=0; i<OUTER; i++) {
             innerFinalIntParametersToForLoop(INNER * i);
         long end0 = System.currentTimeMillis();
         System.out.println("      final:       " +
                      ( end0 - start0 ) + " milliseconds");
        private final void outerNonFinalIntParametersToForLoop(final int INNER,
                                          final int OUTER) {
         // with non-final var in for loop
         long start1 = System.currentTimeMillis();
         for(int i=0; i<OUTER; i++) {
             innerNonFinalIntParametersToForLoop(INNER * i);
         long end1 = System.currentTimeMillis();
         System.out.println("  non final: " +
                      ( end1 - start1 ) + "       milliseconds");
        private final void innerFinalIntParametersToForLoop(final int INNER) {
         for(int i=0; i<INNER; i++) {
             int testVar = i * INNER;
        private final void innerNonFinalIntParametersToForLoop(int loops) {
         for(int i=0; i<loops; i++) {
             int testVar = i * loops;

  • Debugging and Local Variable

    Hi All
    In MS visual studio i can select a local variable (Promise I will go and wash my mouth out now) and add it to a watch therefore i can see what the value of the variable as I go through the code line for line
    how can I view local variable in xcode ?
    Regards
    Tony

    To do something similar in Xcode, select the variable and either choose Run > Variables View > View Variables as Expression or choose Run > Variables View > View Variable in Window. Both options place the local variable in a separate window for you to view.
    There's not much difference between the two options if you're viewing one variable, but there is a difference if you're viewing multiple variables. If you view the variable as an expression, Xcode places all the variables you want to view in one Expressions window. If you view the variable in a window, Xcode creates a new window when you choose Run > Variables View > View Variable in Window.

  • Reading digital line and local variable

    I am using digital lines in my program to start and stop "Flat Sequence Structures"
    like time measurement ( 4 sequence, start and stop time with "Tick Count" )
    Is it good behaviour if i use once "Read from Digital Line.vi" and other starts and stops etc. with Local variables?
    Or can i just use "Read from Digital Line.vi" many times in my VI? (same line)

    Most experienced LV programmers try to avoid both sequence structures and local (and global) variables. The state machine architecture is often preferred. Look at the examples with LV and search for "State machine" on this site.
    I would probably use one read line or read port VI in a loop and pass the data to other, independent loops for processing (the timing) via queues.
    Lynn

  • Scope of globle and locale variable of a Package

    I have query about scope of variable declared in spec and body of a package. like
    create or replace package pk_test as
    v_var varchar2(50);
    procedure pk_p_test;
    end ;
    create or replace package body pk_test as
    v_var varchar2(50) := 'aaa';
    procedure pk_p_test
    is
    --v_var varchar2(50) := 'bbbb' ;
    begin
    null;
    --dbms_output.put_line(pk_p_test.v_var);
    dbms_output.put_line(pk_test.v_var);
    dbms_output.put_line(*v_var*);
    end;
    end;
    declare
    begin
    pk_test.v_var := 'qqqqq';
    --dbms_output.put_line(pk_test.v_var);
    pk_test.pk_p_test() ;
    end ;
    package is allowing to declare variable having same name in spec and body.
    But its not allowing to access. is it bug or .. can we access that variable using some methods

    Ah, I think I can see what you are saying.
    Yes, it can be declared in either place, or even declared in both places, but it shouldn't be declared in both.
    One is a "public" state variable and the other is a "private" state variable, so when it creates the package state, they are both marked differently within the state and therefore unique, hence it compiles.
    The public one can be accessed from outside the package, because it's clear to Oracle which is being referred to...
    SQL> create or replace package pk_test as
      2  v_var varchar2(50);
      3  procedure pk_p_test;
      4  end ;
      5  /
    Package created.
    SQL> ed
    Wrote file afiedt.buf
      1  create or replace package body pk_test as
      2    v_var varchar2(50) := 'aaa';
      3    procedure pk_p_test is
      4    begin
      5      null;
      6    end;
      7* end;
    SQL> /
    Package body created.
    SQL> exec pk_test.v_var := 'aaa';
    PL/SQL procedure successfully completed.
    SQL> set serverout on
    SQL> exec dbms_output.put_line(pk_test.v_var);
    aaa
    PL/SQL procedure successfully completed.However if you try and access the variable from inside the package, the body is able to reference both the public and private variables, so it doesn't know which one to use. Hence the compilation error previously seen.
    It's not a bug, because the packages are being flexible to allow for public and private variables, but what you are experiencing just indicates poor package design and lack of understanding of package state variables.

  • Defined variable and substitution variables

    Are both of these internally treated in the same way by the Oracle database?
    for example a defined variable
    DEFINE p_grade = a
    and if I use a substitution variable p_grade
    DECLARE
    p_grade VARCHAR2(10);
    v_name VARCHAR2(10);
    BEGIN
    SELECT last_name
    INTO v_name
    FROM employees;
    WHERE job_id = &p_grade
    END;
    Edited by: user6287828 on Feb 24, 2009 10:52 AM

    Hi,
    What you're calling a "defined variable" is nothing but a substitution variable.
    DEFINE  p_grade = ais just one way of setting the value of the substitution variable p_grade.
    When you later use that variable, for example
    WHERE job_id = &p_gradethere is no way of telling how p_grade got its value (if it has one).
    Avoid using the same name for two different types of variables.
    For example:
    DECLARE
        p_grade VARCHAR2(10);   -- Local variable declared
        v_name VARCHAR2(10);
    BEGIN
        SELECT  last_name
        INTO    v_name
        FROM    employees
        WHERE   job_id = &p_grade;    -- Substitution variable used
    END;In the second line, you are creating a local VARCHAR2 variable called p_grade that is never used. It has nothing to do with the substitution variable p_grade (unless the value of that substitution variable happens to be p_grade,
    DEFINE  p_grade = p_grade)
    If you do use the same name for differnt types of variables, SQL*Plus may keep them straight, but no one else (including you) will.

  • What is the difference between instance variable and class variable?

    i've looked it up on a few pages and i'm still struggling a bit maybe one of you guys could "dumb" it down for me or give and example of how their uses differ.
    thanks a lot

    Instance is variable, class is an object.What? "Instance" doesn't necessarily refer to variables, and although it's true that instances of Class are objects, it's not clear if that's what you meant, or how it's relevant.
    if you declare one instance in a class that instance
    should be sharing within that class only.Sharing with what? Non-static fields are not shared at all. Sharing which instance? What are you talking about?
    if you declare one class object it will share
    anywhere in the current program.Err...you can create global variables in Java, more or less, by making them static fields. If that's what you meant. It's not a very good practice though.
    Static fields, methods, and classes are not necessarily object types. One can have a static primitive field.

  • UCCE - ECC Variable and User Variable

    Hello All
    As known from Cisco documents, total size of the buffer used to store the "ECC variables" internally is 2000 bytes.
    Is there any constraint similar for User Variables?
    Did some googling and found this one from the link below
    https://supportforums.cisco.com/discussion/10336156/icm-variables
    Its says "User Variables are up to 40 characters in length, with no specific limit to the amount of them,
    the data collected is stored in a specific way"
    Can you please confirm is there any buffer limit to User Variables in ICM?
    Thanks
    Mahesh
    [email protected]

    Mahesh,
    The ECC variable limit is 2500 bytes, not 2000.
    There is no hard limit for User Variables, though I suspect if you had more created than what can fit in the RAM on the router, you would have some issues. You would likely need many thousands of User Variables in order to use gigabytes of RAM, though.
    The use cases for ECC and User variables are quite different... an ECC variable is for data about the current call, while User Variables are usually more appropriate for "global" data that needs to last across multiple calls, such as open/closed states.
    -Jameson

  • How can i initialize variables and append variable in bpelx:exec

    I want to know how to initialize variables in bpelx:exec.
    I try to use java embedded activities for dynamic sql query. But I meet some problems that cannot assign the data to tempVariable. because I don't initialize tempVariable. but I can't initial variables in java embedded actitvities. How can i initialize variables in bpelx:exec ?
    and I want to know to extend child Elment of tempVariables dynamically in bpelx:exec ?
    here is my source.
    <bpelx:exec name="callEmpDB" language="java" version="1.5">
    <![CDATA[
    String url = "jdbc:oracle:thin:@127.0.0.1:1521:wonchoi";
    String user = "scott";
    String passwd = "tiger";
    int index = 1;
    Connection conn = null;
    Statement stmt = null;
    ResultSet rs = null;
    Node node = null;
    try{                             
    conn = DriverManager.getConnection (url, user, passwd);
    stmt = conn.createStatement();
    String wherescript = "";
    Element empno = (Element)getVariableData("inputVariable","payload", "/client:selConnectDBProcessRequest/client:empno");
    Element ename = (Element)getVariableData("inputVariable","payload", "/client:selConnectDBProcessRequest/client:ename");
    Element job = (Element)getVariableData("inputVariable","payload", "/client:selConnectDBProcessRequest/client:job");
    Element deptno = (Element)getVariableData("inputVariable","payload", "/client:selConnectDBProcessRequest/client:deptno");
    String sql = "select empno, ename, job, mgr, hiredate, sal, comm, deptno from emp where 1 = 1 ";
    if(empno != null && empno.getTextContent() != null && !empno.getTextContent().equals("") )
    wherescript = wherescript + " and empno = " + empno.getTextContent() ;
    if(ename != null && ename.getTextContent() != null && !ename.getTextContent().equals("") )
    wherescript = wherescript + " and ename like '" + ename.getTextContent() +"' " ;
    if(job != null && job.getTextContent() != null && !job.getTextContent().equals("") )
    wherescript = wherescript + " and job = '" + job.getTextContent() +"' ";
    if(deptno != null && deptno.getTextContent() != null && !deptno.getTextContent().equals("") )
    wherescript = wherescript + " and deptno = " + deptno.getTextContent() ;
    sql = sql + wherescript;
    System.out.println("sql : "+sql);
    rs = stmt.executeQuery(sql) ;
    while (rs.next())
    setVariableData("tempVariable", "payload", "/ns1:selEmpOutputCollection/child::*[position()="+index+"]/ns1:EMPNO", rs.getString("empno"));
    setVariableData("tempVariable", "payload", "/ns1:selEmpOutputCollection/child::*[position()="+index+"]/ns1:ENAME", rs.getString("ename"));
    setVariableData("tempVariable", "payload", "/ns1:selEmpOutputCollection/child::*[position()="+index+"]/ns1:JOB", rs.getString("job"));
    setVariableData("tempVariable", "payload", "/ns1:selEmpOutputCollection/child::*[position()="+index+"]/ns1:MGR", (rs.getString("mgr")==null? "": rs.getString("mgr")));
    setVariableData("tempVariable", "payload", "/ns1:selEmpOutputCollection/child::*[position()="+index+"]/ns1:HIREDATE", rs.getString("hiredate"));
    setVariableData("tempVariable", "payload", "/ns1:selEmpOutputCollection/child::*[position()="+index+"]/ns1:SAL", rs.getString("sal"));
    setVariableData("tempVariable", "payload", "/ns1:selEmpOutputCollection/child::*[position()="+index+"]/ns1:COMM", rs.getString("comm"));
    setVariableData("tempVariable", "payload", "/ns1:selEmpOutputCollection/child::*[position()="+index+"]/ns1:DEPTNO", rs.getString("deptno"));
    index++;
    }catch(SQLException sex){                          
    System.out.println("sql error");
    }catch(Exception ex){                             
    System.out.println("error");
    }finally{                             
    try{                      
    rs.close();
    stmt.close();
    conn.close();
    }catch(Exception ex){}
    }]]>
    </bpelx:exec>
    and here is tempVariable examples and schema.
    <tempVariable>
         <part name="payload">
              <selEmpOutputCollection>
                   <selEmpOutput>
                   <EMPNO/>
                   <ENAME/>
                   <JOB/>
                   <MGR/>
                   <HIREDATE/>
                   <SAL/>
                   <COMM/>
                   <DEPTNO/>
              </selEmpOutput>
              <selEmpOutputCollection>
         </part>
    </tempVariable>     
    <xsd:element name="selEmpOutputCollection" type="selEmpOutputCollection"/>
    <xsd:element name="selEmpOutput" type="selEmpOutput"/>
    <xsd:complexType name="selEmpOutputCollection">
    <xsd:sequence>
    <xsd:element name="selEmpOutput" type="selEmpOutput" minOccurs="0" maxOccurs="unbounded"/>
    </xsd:sequence>
    </xsd:complexType>
    <xsd:complexType name="selEmpOutput">
    <xsd:sequence>
    <xsd:element name="EMPNO" type="xsd:decimal" nillable="true"/>
    <xsd:element name="ENAME" type="xsd:string" nillable="true"/>
    <xsd:element name="JOB" type="xsd:string" nillable="true"/>
    <xsd:element name="MGR" type="xsd:decimal" nillable="true"/>
    <xsd:element name="HIREDATE" type="xsd:dateTime" nillable="true"/>
    <xsd:element name="SAL" type="xsd:decimal" nillable="true"/>
    <xsd:element name="COMM" type="xsd:decimal" nillable="true"/>
    <xsd:element name="DEPTNO" type="xsd:decimal" nillable="true"/>
    </xsd:sequence>
    </xsd:complexType>
    thanks

    My bpel project flow is as follows.
    First, I initalize the temp varialbe like this.
    <assign name="setInitialVar">
    <copy>
    <from>
    <ns1:selEmpOutput xmlns:ns1="http://lgesoa.lge.com/EmpSpec/types">
    <ns1:EMPNO/>
    <ns1:ENAME/>
    <ns1:JOB/>
    <ns1:MGR/>
    <ns1:HIREDATE/>
    <ns1:SAL/>
    <ns1:COMM/>
    <ns1:DEPTNO/>
    </ns1:selEmpOutput>
    </from>
    <to variable="tempVariable" part="payload"
    query="/ns1:selEmpOutputCollection/ns1:selEmpOutput"/>
    </copy>
    </assign>
    Second, get Data(ex. 10 Employee Information List) from DB for useing Java embedded activity.
    Third, assing employee info to tempVariable, then BPEL assign just only one Employee Information. and next data can't assign and the BPEL make an error.
    here is my error message..
    <2007-03-02 11:23:26,125> <ERROR> <default.collaxa.cube.engine> <BPELXExecLet::setVariableData>
    com.oracle.bpel.client.BPELFault: faultName: {{http://schemas.xmlsoap.org/ws/2003/03/business-process/}selectionFailure}
    messageType: {null}
    parts: {{summary=oracle.xml.parser.v2.XMLElement@15f80b}}
         at com.collaxa.cube.xml.dom.DOMUtil.copy(DOMUtil.java:536)
         at com.collaxa.cube.engine.ext.BPELXExecLet.setVariableData(BPELXExecLet.java:721)
         at com.collaxa.cube.engine.ext.BPELXExecLet.setVariableData(BPELXExecLet.java:700)
         at bpel.selconnectdb.ExecLetBxExe4.execute(ExecLetBxExe4.java:160)
         at com.collaxa.cube.engine.ext.wmp.BPELXExecWMP.__executeStatements(BPELXExecWMP.java:49)
         at com.collaxa.cube.engine.ext.wmp.BPELActivityWMP.perform(BPELActivityWMP.java:195)
         at com.collaxa.cube.engine.CubeEngine.performActivity(CubeEngine.java:3271)
         at com.collaxa.cube.engine.CubeEngine.handleWorkItem(CubeEngine.java:1697)
         at com.collaxa.cube.engine.dispatch.message.instance.PerformMessageHandler.handleLocal(PerformMessageHandler.java:75)
         at com.collaxa.cube.engine.dispatch.DispatchHelper.handleLocalMessage(DispatchHelper.java:184)
         at com.collaxa.cube.engine.dispatch.DispatchHelper.sendMemory(DispatchHelper.java:269)
         at com.collaxa.cube.engine.CubeEngine.endRequest(CubeEngine.java:5244)
         at com.collaxa.cube.engine.CubeEngine.createAndInvoke(CubeEngine.java:1083)
         at com.collaxa.cube.engine.ejb.impl.CubeEngineBean.createAndInvoke(CubeEngineBean.java:132)
         at com.collaxa.cube.engine.ejb.impl.CubeEngineBean.syncCreateAndInvoke(CubeEngineBean.java:161)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    I analyzed the problem. and I find the reason that is I just assing one XML flag to the temp variable. If i don't initalize the varaible like first step, BPEL make an error above error message.
    thanks
    Won.

  • Bind variable and normal variable/parameter

    Hi all
    In many references it is common suggestion to use bind variable in SQL query for better performance. In oracle forms if we write query we use bind variable usually like as below:
    select emp_name
    from hr_employee
    where emp_no = :emp_no;
    But if we use backend function, we send the employee number through parameter and in backend function the query is as below
    select emp_name
    from hr_employee
    where emp_no = pEmpNo; --- IN Parameter
    Does this query get facility as bind variable??
    Thanks in advance.
    Mokarem.

    You may check Bind Variables for reference.
    String literals are usually not automatically converted to binds, unless (and only in certain circumstances)cursor_sharing is enabled.

Maybe you are looking for

  • How do i turn on voicemail that says my number is not in their system

    How do i turn on my voicemail if when i call it, it says its not in their system?

  • Looping over elements in BPEL

    Hi! I am new BPEL. I am trying to process a file that have customer information. I want to loop thru each of the customer record, do series of validations and then write to a file. I tried to use "while" construct to verify that customer name is not

  • Auto-Quit Front Row on exit?

    Hi everyone. Having just received a new MacBook with Leopard, I've been playing around with the new version of Front Row. First off, it's great, runs smoothly and exactly as I want it to. However, I've noticed that Front Row.app uses an awfully big c

  • Problem with the ABAP List output while running program in background.

    Hi ,     This is Sudhir S . I am trying to run a report in background which has 60 columns , but only 13 are displayed when we view it through the spool abap list . But when I run in foreground all the 60 columns are displayed. Since the data which I

  • To get service order from sales order number and item number

    The select on AUFK takes much longer time than the transaction which is used to get the sevice order number starting from VA03. ( select one line item. goto repairs, then select the repairs column and goto SM Order). Is there any other table than AUF