Calling virtual function recursively

Hello,
I have a virtual function foo() in class A which, under certain conditions, will call itself.
In a class B, which is derived from A, I am overriding foo() to call super.foo() and then execute come code.
My question is:
When the code in class A executes, the recursive call this.foo() will call the function in class B (because I am in a class B object), no?
If it does, what syntax can I use to make it call the function in the context of class A, although the code is running in an object of class B?
Thank you.

Yes, and the obvious solution is to move the implementation in A out to a private recursive method foo_inner() and get A.foo() to just call foo_inner().

Similar Messages

  • Calling pipelined function recursively

    Hi,
    I want to call Z_Get_Subprojects1 function recursively so that i get the childs for all the levels.
    please tell is my approach correct.
    SELECT *
    FROM TABLE (Z_Get_Subprojects1(5060097))
    it is giving me only level one projects.
    CREATE OR REPLACE FUNCTION Z_Get_Subprojects1 (Prog_id IN NUMBER)
    RETURN Ref_Pkg.abc1 pipelined
    IS
    CURSOR Cur(progid NUMBER)
    IS
    SELECT
    d.ID CHILD_ID, d.UNIQUE_NAME CHILD_UNIQUE_NAME,d.is_program flag
    FROM
    srm_projects a,
    prTask b,
    prSubProject c,
    srm_projects d
    WHERE
    a.id = b.prProjectID
    AND b.prID = c.prTaskID
    AND c.PRREFPROJECTID=d.id
    AND a.id=progid
    r_ytd_costs abc%ROWTYPE;
    BEGIN
    FOR c IN cur( Prog_id)
    LOOP
         r_ytd_costs.childid := c.child_id ;
         PIPE ROW(r_ytd_costs) ;
    SELECT childid INTO temp1
    FROM TABLE (Z_Get_Subprojects1(c.child_id));
    END LOOP;
    RETURN ;
    END;
    /

    yes i agree that we can use connect by but i need to stop at a point where a project is not a program.
    whether a project is a program or not is obtained by a field is_program of srm_projects table.
    i tried to use the query below using connect by but got incorrect results.
    please check if i am using it correctly.
    SELECT a.id parent_id,a.name,a.unique_name,d.id child_id,d.name,d.unique_name FROM
    SRM_PROJECTS a,
    PRTASK b,
    PRSUBPROJECT c,
    SRM_PROJECTS d
    WHERE
    a.id = b.prProjectID
    AND b.prID = c.prTaskID
    AND c.PRREFPROJECTID=d.id
    START WITH a.id IN (SELECT id FROM SRM_PROJECTS WHERE is_program=1
    MINUS
    SELECT PRREFPROJECTID FROM PRSUBPROJECT)
    CONNECT BY PRIOR d.id=a.id
    ORDER BY a.name

  • Problems calling virtual functions

    Hi,
         We have code running in a shared library that appears to be incorrectly changing registers that contain function parameters before the called (virtual) function acceses the registers containing its parameters.
    Has anyone seen a similar problem ? If so does
    anyone knaw what the solution is ?
    Compiler:
    SunAMD:tbucken@win64bld 247>>> CC -V
    CC: Sun C++ 5.7 2005/01/07
    SunAMD:tbucken@win64bld 248>>> uname -a
    SunOS win64bld 5.10 Generic i86pc i386 i86pc
    solaris is running on an HP DL585 (4 cpu's)
    calling function code (We are setting up a vitual function call):
         tempdatabase->CostModel->GetCompareSelectivity
         (_lhs_base, rhsbase, rhsconverted, op, &sel_est,
         &_value_distrib );
    / Line 922
         movq     -144(%rbp), %r8
         movq     352(%r8), %r8
         movq     0(%r8), %r14
         movq     -144(%rbp), %r13
         movq     -8(%rbp), %r12
         movq     -8(%rbp), %r11
         movq     -8(%rbp), %r10
         movq     -8(%rbp), %r8
         movzbl     120(%r8), %eax
         movq     -8(%rbp), %r9
         movq     -8(%rbp), %r8
         leaq     192(%r8), %r8
         movq     %r8, 0(%rsp)
         leaq     40(%r9), %r9
         movl     %eax, %r8d
         movq     168(%r10), %rcx
         movq     152(%r11), %rdx
         movq     144(%r12), %rsi
         movq     352(%r13), %rdi
         movq     48(%r14), %r10
         movl     $0, %eax
         call     *%r10
    the function called:
    p_expr is a pointer:
    a_relation is an unsigned char
    The last 2 arguments are pointers.
    void CostModel::GetCompareSelectivity(
    p_expr                colexpr,
                        p_expr                expr2,
                        p_expr                expr2_converted,
                        a_relation           reln,
                        SelectivityEstimate      *est,
                        IHistogram          **hist )
    My uderstading of register usage during a function call on opteron (from
    http://www.x86-64.org/documentation/abi-0.96.pdf)
    %rdi - first argument - this pointer
    %rsi - second argument - colexpr
    %rdx - third argument - expr2
    %rcx - fourth argument - expr2_converted
    %r8 - fifth argument - reln
    %r9 - sixth argument - est
         %rcx and %r8 are being setup correctly by the calling function but they are changed by the code that is executed by the call psudo-op that
    calculates that virtual function address.
    setting up the function call
    t@7 (l@7) stopped in dfp_Compares::ComputeSelectivity at line 922 in file "dfp_compares.cpp"
    922 tempdatabase->CostModel->GetCompareSelectivity
    t@7 stepi
    t@7 (l@7) stopped in dfp_Compares::ComputeSelectivity at 0xfffffd7ffe85dcbd
    0xfffffd7ffe85dcbd: ComputeSelectivity+0x038d: movq 0x0000000000000160(%r8),%r8
    t@7 stepi
    t@7 (l@7) stopped in dfp_Compares::ComputeSelectivity at 0xfffffd7ffe85dcc4
    0xfffffd7ffe85dcc4: ComputeSelectivity+0x0394: movq 0x0000000000000000(%r8),%r14
    t@7 stepi
    t@7 (l@7) stopped in dfp_Compares::ComputeSelectivity at 0xfffffd7ffe85dcc8
    0xfffffd7ffe85dcc8: ComputeSelectivity+0x0398: movq 0xffffffffffffff70(%rbp),%r13
    t@7 stepi
    t@7 (l@7) stopped in dfp_Compares::ComputeSelectivity at 0xfffffd7ffe85dccf
    0xfffffd7ffe85dccf: ComputeSelectivity+0x039f: movq 0xfffffffffffffff8(%rbp),%r12
    t@7 stepi
    t@7 (l@7) stopped in dfp_Compares::ComputeSelectivity at 0xfffffd7ffe85dcd3
    0xfffffd7ffe85dcd3: ComputeSelectivity+0x03a3: movq 0xfffffffffffffff8(%rbp),%r11
    t@7 stepi
    t@7 (l@7) stopped in dfp_Compares::ComputeSelectivity at 0xfffffd7ffe85dcd7
    0xfffffd7ffe85dcd7: ComputeSelectivity+0x03a7: movq 0xfffffffffffffff8(%rbp),%r10
    t@7 stepi
    t@7 (l@7) stopped in dfp_Compares::ComputeSelectivity at 0xfffffd7ffe85dcdb
    0xfffffd7ffe85dcdb: ComputeSelectivity+0x03ab: movq 0xfffffffffffffff8(%rbp),%r8
    t@7 stepi
    t@7 (l@7) stopped in dfp_Compares::ComputeSelectivity at 0xfffffd7ffe85dcdf
    0xfffffd7ffe85dcdf: ComputeSelectivity+0x03af: movzbl 0x0000000000000078(%r8),%eax
    t@7 stepi
    t@7 (l@7) stopped in dfp_Compares::ComputeSelectivity at 0xfffffd7ffe85dce4
    0xfffffd7ffe85dce4: ComputeSelectivity+0x03b4: movq 0xfffffffffffffff8(%rbp),%r9
    t@7 stepi
    t@7 (l@7) stopped in dfp_Compares::ComputeSelectivity at 0xfffffd7ffe85dce8
    0xfffffd7ffe85dce8: ComputeSelectivity+0x03b8: movq 0xfffffffffffffff8(%rbp),%r8
    t@7 stepi
    t@7 (l@7) stopped in dfp_Compares::ComputeSelectivity at 0xfffffd7ffe85dcec
    0xfffffd7ffe85dcec: ComputeSelectivity+0x03bc: leaq 0x00000000000000c0(%r8),%r8
    t@7 stepi
    t@7 (l@7) stopped in dfp_Compares::ComputeSelectivity at 0xfffffd7ffe85dcf3
    0xfffffd7ffe85dcf3: ComputeSelectivity+0x03c3: movq %r8,0x0000000000000000(%rsp)
    t@7 stepi
    t@7 (l@7) stopped in dfp_Compares::ComputeSelectivity at 0xfffffd7ffe85dcf8
    0xfffffd7ffe85dcf8: ComputeSelectivity+0x03c8: leaq 0x0000000000000028(%r9),%r9
    t@7 stepi
    t@7 (l@7) stopped in dfp_Compares::ComputeSelectivity at 0xfffffd7ffe85dcfc
    0xfffffd7ffe85dcfc: ComputeSelectivity+0x03cc: movl %eax,%r8d
    t@7 stepi
    t@7 (l@7) stopped in dfp_Compares::ComputeSelectivity at 0xfffffd7ffe85dcff
    0xfffffd7ffe85dcff: ComputeSelectivity+0x03cf: movq 0x00000000000000a8(%r10),%rcx
    t@7 stepi
    t@7 (l@7) stopped in dfp_Compares::ComputeSelectivity at 0xfffffd7ffe85dd06
    0xfffffd7ffe85dd06: ComputeSelectivity+0x03d6: movq 0x0000000000000098(%r11),%rdx
    t@7 stepi
    t@7 (l@7) stopped in dfp_Compares::ComputeSelectivity at 0xfffffd7ffe85dd0d
    0xfffffd7ffe85dd0d: ComputeSelectivity+0x03dd: movq 0x0000000000000090(%r12),%rsi
    t@7 stepi
    t@7 (l@7) stopped in dfp_Compares::ComputeSelectivity at 0xfffffd7ffe85dd15
    0xfffffd7ffe85dd15: ComputeSelectivity+0x03e5: movq 0x0000000000000160(%r13),%rdi
    t@7 stepi
    t@7 (l@7) stopped in dfp_Compares::ComputeSelectivity at 0xfffffd7ffe85dd1c
    0xfffffd7ffe85dd1c: ComputeSelectivity+0x03ec: movq 0x0000000000000030(%r14),%r10
    t@7 stepi
    t@7 (l@7) stopped in dfp_Compares::ComputeSelectivity at 0xfffffd7ffe85dd20
    0xfffffd7ffe85dd20: ComputeSelectivity+0x03f0: movl $0x0000000000000000,%eax
    t@7 stepi
    t@7 (l@7) stopped in dfp_Compares::ComputeSelectivity at 0xfffffd7ffe85dd25
    0xfffffd7ffe85dd25: ComputeSelectivity+0x03f5: call *%r10d
    t@7 regs
    current frame: [1]
    r15 0x0000000000000000
    r14 0xfffffd7ffee61d60
    r13 0xfffffd7fed3f3890
    r12 0xfffffd7fed4573c0
    r11 0xfffffd7fed4573c0
    r10 0xfffffd7ffeaa3b20
    r9 0xfffffd7fed4573e8
    r8 0x0000000000000002
    rdi 0xfffffd7fed3ff1a8
    rsi 0x0000000000000000
    rbp 0xfffffd7ffdbfa730
    rbx 0xfffffd7ffdee1400
    rdx 0x0000000000000000
    rcx 0x0000000000000000
    rax 0x0000000000000000
    trapno 0x0000000000000001
    err 0x0000000000000000
    rip 0xfffffd7ffe85dd25:ComputeSelectivity+0x3f5 call *%r10d
    cs 0x000000000000004b
    eflags 0x0000000000000286
    rsp 0xfffffd7ffdbfa600
    ss 0x0000000000000043
    fs 0x00000000000001bb
    gs 0x0000000000000000
    es 0x0000000000000000
    ds 0x0000000000000000
    fsbase 0xfffffd7ffdee1400
    gsbase 0xffffffff80000000
    t@7
    %rcx contains 0 which is the correct value for expr2_converted
    %r8 contains 2 which is the correct value for reln
    step through the code generated by the call psudo-op
    t@7 stepi
    t@7 (l@7) stopped in __SLIP.THUNK__E at 0xfffffd7ffeaa3b20
    0xfffffd7ffeaa3b20: __SLIP.THUNK__E : pushq %rbp
    t@7 stepi
    t@7 (l@7) stopped in __SLIP.THUNK__E at 0xfffffd7ffeaa3b21
    0xfffffd7ffeaa3b21: __SLIP.THUNK__E+0x0001: movq %rsp,%rbp
    t@7 stepi
    t@7 (l@7) stopped in __SLIP.THUNK__E at 0xfffffd7ffeaa3b24
    0xfffffd7ffeaa3b24: __SLIP.THUNK__E+0x0004: subq $0x0000000000000010,%rsp
    t@7 stepi
    t@7 (l@7) stopped in __SLIP.THUNK__E at 0xfffffd7ffeaa3b28
    0xfffffd7ffeaa3b28: __SLIP.THUNK__E+0x0008: movq %rdi,0xfffffffffffffff8(%rbp)
    t@7 stepi
    %r8 is changed here:
    t@7 (l@7) stopped in __SLIP.THUNK__E at 0xfffffd7ffeaa3b2c
    0xfffffd7ffeaa3b2c: __SLIP.THUNK__E+0x000c: movq 0xfffffffffffffff8(%rbp),%r8
    t@7 p -fx $r8
    dbx: warning: The format '0x%x' is not suitable for type long long, will use 'llx' instead
    $r8 = 0x2
    t@7 stepi
    t@7 (l@7) stopped in __SLIP.THUNK__E at 0xfffffd7ffeaa3b30
    0xfffffd7ffeaa3b30: __SLIP.THUNK__E+0x0010: leaq 0xfffffffffffffff8(%r8),%r8
    t@7 p -fx $r8
    dbx: warning: The format '0x%x' is not suitable for type long long, will use 'llx' instead
    $r8 = 0xfffffd7fed3ff1a8
    t@7 stepi
    t@7 (l@7) stopped in __SLIP.THUNK__E at 0xfffffd7ffeaa3b34
    0xfffffd7ffeaa3b34: __SLIP.THUNK__E+0x0014: movq %r8,0xfffffffffffffff8(%rbp)
    t@7 stepi
    t@7 (l@7) stopped in __SLIP.THUNK__E at 0xfffffd7ffeaa3b38
    0xfffffd7ffeaa3b38: __SLIP.THUNK__E+0x0018: movq 0xfffffffffffffff8(%rbp),%rdi
    t@7 stepi
    %rcx is chaged here:
    t@7 (l@7) stopped in __SLIP.THUNK__E at 0xfffffd7ffeaa3b3c
    0xfffffd7ffeaa3b3c: __SLIP.THUNK__E+0x001c: movq 0x000000000035d08d [ 0x35d08d ],%rcx
    t@7 p -fx $rcx
    dbx: warning: The format '0x%x' is not suitable for type long long, will use 'llx' instead
    $rcx = 0x0
    t@7 stepi
    t@7 (l@7) stopped in __SLIP.THUNK__E at 0xfffffd7ffeaa3b43
    0xfffffd7ffeaa3b43: __SLIP.THUNK__E+0x0023: leave
    t@7 p -fx $rcx
    dbx: warning: The format '0x%x' is not suitable for type long long, will use 'llx' instead
    $rcx = 0xfffffd7ffeaa8aa0
    t@7 stepi
    t@7 (l@7) stopped in __SLIP.THUNK__E at 0xfffffd7ffeaa3b44
    0xfffffd7ffeaa3b44: __SLIP.THUNK__E+0x0024: jmp *%ecx
    t@7 stepi
    t@7 (l@7) stopped in CostModel::GetCompareSelectivity at 0xfffffd7ffeaa8aa0
    0xfffffd7ffeaa8aa0: GetCompareSelectivity : pushq %rbp
    t@7 regs
    current thread: t@7
    current frame: [1]
    r15 0x0000000000000000
    r14 0xfffffd7ffee61d60
    r13 0xfffffd7fed3f3890
    r12 0xfffffd7fed4573c0
    r11 0xfffffd7fed4573c0
    r10 0xfffffd7ffeaa3b20
    r9 0xfffffd7fed4573e8
    r8 0xfffffd7fed3ff1a0
    rdi 0xfffffd7fed3ff1a0
    rsi 0x0000000000000000
    rbp 0xfffffd7ffdbfa730
    rbx 0xfffffd7ffdee1400
    rdx 0x0000000000000000
    rcx 0xfffffd7ffeaa8aa0
    rax 0x0000000000000000
    trapno 0x0000000000000001
    err 0x0000000000000000
    rip 0xfffffd7ffeaa8aa0:GetCompareSelectivity pushq %rbp
    cs 0x000000000000004b
    eflags 0x0000000000000282
    rsp 0xfffffd7ffdbfa5f8
    ss 0x0000000000000043
    fs 0x00000000000001bb
    gs 0x0000000000000000
    es 0x0000000000000000
    ds 0x0000000000000000
    fsbase 0xfffffd7ffdee1400
    gsbase 0xffffffff80000000
    step through the function prolog:
    t@7 stepi
    t@7 (l@7) stopped in CostModel::GetCompareSelectivity at 0xfffffd7ffeaa8aa1
    0xfffffd7ffeaa8aa1: GetCompareSelectivity+0x0001: movq %rsp,%rbp
    t@7 stepi
    t@7 (l@7) stopped in CostModel::GetCompareSelectivity at 0xfffffd7ffeaa8aa4
    0xfffffd7ffeaa8aa4: GetCompareSelectivity+0x0004: subq $0x0000000000000190,%rsp
    t@7 stepi
    t@7 (l@7) stopped in CostModel::GetCompareSelectivity at 0xfffffd7ffeaa8aab
    0xfffffd7ffeaa8aab: GetCompareSelectivity+0x000b: movq %rbx,0xfffffffffffffea8(%rbp)
    t@7 stepi
    t@7 (l@7) stopped in CostModel::GetCompareSelectivity at 0xfffffd7ffeaa8ab2
    0xfffffd7ffeaa8ab2: GetCompareSelectivity+0x0012: movq %r12,0xfffffffffffffea0(%rbp)
    t@7 stepi
    t@7 (l@7) stopped in CostModel::GetCompareSelectivity at 0xfffffd7ffeaa8ab9
    0xfffffd7ffeaa8ab9: GetCompareSelectivity+0x0019: movq %r13,0xfffffffffffffe98(%rbp)
    t@7 stepi
    t@7 (l@7) stopped in CostModel::GetCompareSelectivity at 0xfffffd7ffeaa8ac0
    0xfffffd7ffeaa8ac0: GetCompareSelectivity+0x0020: movq %r14,0xfffffffffffffe90(%rbp)
    t@7 stepi
    t@7 (l@7) stopped in CostModel::GetCompareSelectivity at 0xfffffd7ffeaa8ac7
    0xfffffd7ffeaa8ac7: GetCompareSelectivity+0x0027: movq %r15,0xfffffffffffffe88(%rbp)
    t@7 stepi
    t@7 (l@7) stopped in CostModel::GetCompareSelectivity at 0xfffffd7ffeaa8ace
    0xfffffd7ffeaa8ace: GetCompareSelectivity+0x002e: movq %rdi,0xfffffffffffffff8(%rbp)
    t@7 stepi
    t@7 (l@7) stopped in CostModel::GetCompareSelectivity at 0xfffffd7ffeaa8ad2
    0xfffffd7ffeaa8ad2: GetCompareSelectivity+0x0032: movq %rsi,0xfffffffffffffff0(%rbp)
    t@7 stepi
    t@7 (l@7) stopped in CostModel::GetCompareSelectivity at 0xfffffd7ffeaa8ad6
    0xfffffd7ffeaa8ad6: GetCompareSelectivity+0x0036: movq %rdx,0xffffffffffffffe8(%rbp)
    t@7 stepi
    t@7 (l@7) stopped in CostModel::GetCompareSelectivity at 0xfffffd7ffeaa8ada
    0xfffffd7ffeaa8ada: GetCompareSelectivity+0x003a: movq %rcx,0xffffffffffffffe0(%rbp)
    t@7 stepi
    t@7 (l@7) stopped in CostModel::GetCompareSelectivity at 0xfffffd7ffeaa8ade
    0xfffffd7ffeaa8ade: GetCompareSelectivity+0x003e: movl %r8d,0xffffffffffffffdc(%rbp)
    t@7 stepi
    t@7 (l@7) stopped in CostModel::GetCompareSelectivity at 0xfffffd7ffeaa8ae2
    0xfffffd7ffeaa8ae2: GetCompareSelectivity+0x0042: movq %r9,0xffffffffffffffd0(%rbp)
    t@7 stepi
    t@7 (l@7) stopped in CostModel::GetCompareSelectivity at 0xfffffd7ffeaa8ae6
    0xfffffd7ffeaa8ae6: GetCompareSelectivity+0x0046: movl $0x0000000000000000,0xfffffffffffffeb0(%rbp)
    check the values of expr2_converted and reln
    t@7 p expr2_converted
    expr2_converted = 0xfffffd7ffeaa8aa0
    t@7 p reln
    reln = ' '
    t@7 p -fx reln
    reln = 0xa0
    and both values are incorrect because the values in registers %rcx and %r8
    have changed.sus
    Tom

    The original release of Sun Studio 10 had problems with saving and restoring registers in some cases on AMD64. Please visit the Sun Studio patch page at
    http://developers.sun.com/prodtech/cc/downloads/patches/index.html
    Download the current patches for
    C++ Compiler
    x86 compiler backend
    C++ shared library patch for your Solaris version.

  • Application Class Loader problem calling virtual function

    Hello everyone
    I have run in to very strange behavior of JVM
    I have created a class loader which allows my to load classes from
    jar file, regardless that URLClassLoader supplies this functionality.
    I am using this class loader to load some classes and call their virtual functions. The class diagram looks like that:
    public interface I {
       public void init();
    public class AAA implements
       public void init(){
    public class BBB extends AAA{
       public void init(){
          //here comes implementation
    }Interface I and class AAA are loaded with System Class loader and Class BBB is loaded using my class loader from jar file.
    ByteStreamClassLoader  classLoader =  new ByteStreamClassLoader  ();
    Class cl = classLoader. loadClass(�com.product.BBB�,true);
    I myInterface = cl.newInstance();
    myInterface.init();The problem is that from some unknown reason java class AAA.init() instead of BBB.init().
    Can somebody help me what am I doing wrong?
    Class Loader code attached below
      public class ByteStreamClassLoader   extends ClassLoader {
        protected HashMap m_cache = new HashMap();
        public void clearCashe() {
          m_cache = new HashMap();
        private String definePackage(String className) {
          StringBuilder strB = new StringBuilder();
          //Class name must be removed from the URI in order to define a package
          String[] packageArray = className.split("\\.");
          for (int i = 0; i < packageArray.length - 1; i++) {
            strB.append(packageArray).append(".");
    String packageName = strB.toString();
    packageName = packageName.substring(0, packageName.length() - 1);
    if (getPackage(packageName) == null) {
    m_logger.log(Level.FINEST, "Defining package '" + packageName + "'");
    definePackage(packageName, null, null, null, null, null, null, null);
    return packageName;
    public synchronized Class loadClass(String name, boolean resolve) throws
    ClassNotFoundException {
    name = name.replaceAll("/", ".").replaceAll(".class", "");
    //Try to locate the Class in cashe
    Class c = (Class) m_cache.get(name);
    //Try to locate the Class in the System Class Loader
    if (c == null) {
    try {
    c = ClassLoader.getSystemClassLoader().loadClass(name);
    catch (Exception ex) {}
    else {
    m_logger.log(Level.FINEST, "Class '" + name + "' found in cache");
    //Load the class from byte array
    if (c == null) {
    String resourceName = name;
    if (!resourceName.endsWith(".class")) {
    resourceName = resourceName.concat(".class");
    //Retrieve class byte representation
    if (resourceName.indexOf(".") != -1) {
    resourceName =
    resourceName.replaceAll("\\.", "/").replaceAll("/class", ".class");
    //Use the ByteStreamClassLoader to load the class from byte array
    byte[] classByteArray = null;
    try {
    classByteArray = getResourceBytes(resourceName);
    catch (IOException ex1) {
    throw new ClassNotFoundException(
    "Could not load class data." + ex1.getMessage());
    m_logger.log(
    Level.FINEST, "Loading class '" +
    name + "' Byte Length: " + classByteArray.length);
    String p = definePackage(name);
    c = defineClass(
    name,
    classByteArray,
    0,
    classByteArray.length,
    ByteStreamClassLoader.class.getProtectionDomain());
    m_cache.put(name, c);
    if (resolve) {
    resolveClass(c);
    return c;

    Hello everyone
    I have run in to very strange behavior of JVM
    I have created a class loader which allows my to load classes from
    jar file, regardless that URLClassLoader supplies this functionality.
    I am using this class loader to load some classes and call their virtual functions. The class diagram looks like that:
    public interface I {
       public void init();
    public class AAA implements
       public void init(){
    public class BBB extends AAA{
       public void init(){
          //here comes implementation
    }Interface I and class AAA are loaded with System Class loader and Class BBB is loaded using my class loader from jar file.
    ByteStreamClassLoader  classLoader =  new ByteStreamClassLoader  ();
    Class cl = classLoader. loadClass(�com.product.BBB�,true);
    I myInterface = cl.newInstance();
    myInterface.init();The problem is that from some unknown reason java class AAA.init() instead of BBB.init().
    Can somebody help me what am I doing wrong?
    Class Loader code attached below
      public class ByteStreamClassLoader   extends ClassLoader {
        protected HashMap m_cache = new HashMap();
        public void clearCashe() {
          m_cache = new HashMap();
        private String definePackage(String className) {
          StringBuilder strB = new StringBuilder();
          //Class name must be removed from the URI in order to define a package
          String[] packageArray = className.split("\\.");
          for (int i = 0; i < packageArray.length - 1; i++) {
            strB.append(packageArray).append(".");
    String packageName = strB.toString();
    packageName = packageName.substring(0, packageName.length() - 1);
    if (getPackage(packageName) == null) {
    m_logger.log(Level.FINEST, "Defining package '" + packageName + "'");
    definePackage(packageName, null, null, null, null, null, null, null);
    return packageName;
    public synchronized Class loadClass(String name, boolean resolve) throws
    ClassNotFoundException {
    name = name.replaceAll("/", ".").replaceAll(".class", "");
    //Try to locate the Class in cashe
    Class c = (Class) m_cache.get(name);
    //Try to locate the Class in the System Class Loader
    if (c == null) {
    try {
    c = ClassLoader.getSystemClassLoader().loadClass(name);
    catch (Exception ex) {}
    else {
    m_logger.log(Level.FINEST, "Class '" + name + "' found in cache");
    //Load the class from byte array
    if (c == null) {
    String resourceName = name;
    if (!resourceName.endsWith(".class")) {
    resourceName = resourceName.concat(".class");
    //Retrieve class byte representation
    if (resourceName.indexOf(".") != -1) {
    resourceName =
    resourceName.replaceAll("\\.", "/").replaceAll("/class", ".class");
    //Use the ByteStreamClassLoader to load the class from byte array
    byte[] classByteArray = null;
    try {
    classByteArray = getResourceBytes(resourceName);
    catch (IOException ex1) {
    throw new ClassNotFoundException(
    "Could not load class data." + ex1.getMessage());
    m_logger.log(
    Level.FINEST, "Loading class '" +
    name + "' Byte Length: " + classByteArray.length);
    String p = definePackage(name);
    c = defineClass(
    name,
    classByteArray,
    0,
    classByteArray.length,
    ByteStreamClassLoader.class.getProtectionDomain());
    m_cache.put(name, c);
    if (resolve) {
    resolveClass(c);
    return c;

  • HT203175 I have no problem signing on to iTunes my issue is once on the site I can not use the "search". It says there is a runtime error R6025 pure virtual function call. Has anyone had this problem and how do I fix it. Thanks

    I do not have a problem getting in the iTunes stores. My issue is once on the site I can not use the "search". It says there is a pure virtual function call R6025. How can I solve this problem? Do I have to create a new account? Do I have to uninstall and re-install? Thanks

    Thanks so much for your feedback. I really appreciate any input here.
    If someone from Adobe could GUARANTEE that this problem would go away if I
    purchased CS4, I would pony up the cash and do it. However, I'm skeptical
    about that because I just saw someone else post a message on the forum today
    who is running CS4 and getting the exact same runtime error as me.
    I'll try un-installing and re-installing as Admin, and if that doesn't work,
    maybe I can find a used copy of CS3.
    In the meantime, I'm also wondering if a Photoshop file can carry any sort
    of corrupt metadata inside it once it has errored out? Reason I ask is, I
    had to port all of my old PSD files to the new computer, and I only seem to
    be getting this error when I attempt to work on one of the files that
    previously got the runtime error when they were sitting on my XP machine.
    When I create new files from scratch on this new computer, they seem to be
    working just fine (at least, for now).
    If so, I would probably be smart to never open those troublesome
    "errored-out" files again.

  • When i open my i3tunes on my computer i get an error message telling me that iTunes has stopped working..the message is as follows...Microsoft Visual C  runtime library Program C:\program files (86) iTunes\iTunes.exe  R6025 -Pure virtual function call..

    when i open my i3tunes on my computer i get an error message telling me that iTunes has stopped working..the message is as follows...Microsoft Visual C  runtime library Program C:\program files (86) iTunes\iTunes.exe  R6025 -Pure virtual function call.. How do i fix this

    For general advice see Troubleshooting issues with iTunes for Windows updates.
    The steps in the second box are a guide to removing everything related to iTunes and then rebuilding it which is often a good starting point unless the symptoms indicate a more specific approach. Review the other boxes and the list of support documents further down page in case one of them applies.
    Your library should be unaffected by these steps but there is backup and recovery advice elsewhere in the user tip.
    tt2

  • ITunes crashes when doing a power search. I get a Microsoft Visual C   Runtime Library Error message: Program C:\Program Files (x86)\iTunes\iTunes.exe R6025.  Pure virtual functional call.  If I select ok, Windows 7 pops up with iTunes has stopped working

    iTunes crashes when doing a power search. I get a Microsoft Visual C   Runtime Library Error message: Program C:\Program Files (x86)\iTunes\iTunes.exe R6025.  Pure virtual functional call.  If I select ok, Windows 7 pops up with iTunes has stopped working and then it shuts iTunes down.  Anyone else every have this issue.  Any ideas on a fix?
    Thanks,

    For general advice see Troubleshooting issues with iTunes for Windows updates.
    The steps in the second box are a guide to removing everything related to iTunes and then rebuilding it which is often a good starting point unless the symptoms indicate a more specific approach. Review the other boxes and the list of support documents further down page in case one of them applies.
    Your library should be unaffected by these steps but there is backup and recovery advice elsewhere in the user tip.
    tt2

  • "R6025 -pure virtual function call" Error While Use Adobe Media Encoder

    I'm trying to use Adobe Media Encoder (CS3) to output a project to H.264. I have about 3 minutes of footage on the Premier Pro CS3 Timeline, all of it in Cineform AVI intermediate format. When I export the movie through AME and select 2-pass VBR, it gets through the first pass, but crashes at 50% on the second pass with the error:
    "Microsoft Visual C++ Runtime Library
    Runtime Error!
    Program E:\Progra...
    R6025
    -pure virtual function call"
    Any ideas what may be causing this error?

    Point taken...
    I'm on a Dell XPS 720 Windows XP (32-bit) system, with all up-to-date service packs and patches. I have 4GB RAM installed, and Production Premium CS3, TMPGEncXPress and Cineform's Neo Scene. Neo Scene is a recent addition and the problem existed prior to its installation. I have two 7900GS graphics cards (each with 256MB video RAM), running in SLI mode.
    I dual boot Windows XP: One system is "Messy" with all kinds of stuff installed. The other is "Clean" and has virtually nothing installed, except for the three suites previously mentioned. No anti-virus or anti-spyware software is installed on the Clean system. I get the error on both systems.
    I saw the post from September 2007 reference vcredist_x86. I'll be trying that at my next opportunity, however, I'm not sure that will fix it, as I don't see why both systems would suffer from the same corruption. I'll also be swapping out RAM to see if that fixes the issue.

  • I can't search a song or an artist.  i get an error R6025/pure virtual function call. then itunes stops working.  PLEASE HELP

    I can't search a song or an artist without getting an error R6025 - pure virtual function call. Then itunes stops working. How do I fix it?  PLEASE HELP

    I have had numerous issues with Itunes 64 bit 11.1.38 (and other previous versions) locking up and crashing upon start with "Itunes has stopped working" or "R6027 pure virtual function call".  I have researched the answers around the forums as well as having tried some extensive and repetitious troubleshooting myself and thought I'd list them here... in order of troubleshooting...
    1. Install all Windows updates and reboot.  This seems to clear issues from time-to-time... I suspect Itunes expects the latest-and-greatest as far as Windows is concerned.. see if this clears your issue.
    2. Uninstall all Itunes and Apple products & reboot, remove their directories, remove lingering Itunes registry entries, reboot again, reinstall using "RUN AS ADMINISTRATOR" to install the Itunes executable. See if this allows Itunes to stabilize.  Pelase be sure to use the following guide from Apple as far as removing the apps and directories are concerned...
    http://support.apple.com/kb/ht1923
    3. Remove the contents of the "iphone photo cache"  (or other related product photo cache)  directory.
    4. Try editing the shortcut properties and configure the shortcut (for all users) to run as Administrator.
    5. Try editing the shortcut and configure it to run in Compatibility Mode for Windows 7 (for all users).
    6. a.Try using MSCONFIG to locate a potential conflicting application or service using the following...
    http://support.apple.com/kb/ht2292
    or
    6. b. Remove the last recent software application(s) you may have installed... in my case removing GREENSHOT http://getgreenshot.org/  stopped my Itunes from crashing on startup and it stabilized after
    driving my nuts for weeks.
    Message was edited by: DaCheeze

  • URGENT: Bug in Adobe Acrobat X /// Acrobat.exe Runtime Error! R6025 - pure virtual function call

    Hello
    I work usually with large PDF documents, and I was trying to convert a PDF document of 1000 pages ONE THOUSAND PAGES, to little PDF documents of 10 MB each one.
    When I tried to convert the PDF file into little ones, craaashhhhhhhhhhhhhhhhhh
    I got this message:
    Acrobat.exe Runtime Error! R6025 - pure virtual function call - Microsoft Visual C++ Runtime Library
    This seems to be a BUG AS BIG A GRAND PIANO... so I would like someone from Adobe tell me how may I solve this problem or if they will release an update soon?
    Thank you

    This is a user to user forum and we don't post information here (or anywhere else public) about what may or may not be in future patch releases.
    If you have a bug with an Adobe product you must report it using the correct form.

  • Recursive call of function module 'CRM_ORDER_MAINTAIN'

    Hi together,
    I have got the follwoing problem.
    We have to implement a proof on a partner function regarding the role.
    I found the BADI IF_EX_COM_PARTNER_BADI~COM_PARTNER_CHECK
    I implement the the follwoing coding:
      IF is_partner_wrk-partner_fct = 'ZADI0012'.
        SELECT SINGLE * INTO  ls_but100
                        FROM  but100
                        WHERE partner = is_partner_wrk-external_partner_number
                        AND   rltyp   = 'BUP004'.
        IF sy-subrc = 4.
          MESSAGE e003(crm_ic_partner) WITH is_partner_wrk-external_partner_number.
        ENDIF.
      ENDIF.
    when I enter a partner with a wrong role, I got the message I have implemented. Afterwards I type in a partner with the correct role I got a short dump.
    Recursive call of function module 'CRM_ORDER_MAINTAIN'
    Has anybody an idea how to solve this issue?
    Thanks and best regards,
    Sylvia

    Hi scharfen,
    We got the similar requirement what you implemented.I implemented the below code but the error message is coming 3 times.
    I have got the follwoing problem.
    We have to implement a check on a partner function regarding the role.
    I found the BADI IF_EX_COM_PARTNER_BADI~COM_PARTNER_CHECK
    I implemented the the follwoing coding:
    method IF_EX_COM_PARTNER_BADI~COM_PARTNER_CHECK .
    DATA: lw_but100 TYPE but100,
    lw_but000 TYPE but000,
    lw_msgno TYPE bal_s_idno,
    lt_msgno TYPE bal_r_idno,
    l_partner TYPE symsgv,
    lw_low TYPE balmsgidno.
    IF is_partner_wrk-PARTNER_FCT = '00000009'.
    SELECT SINGLE * INTO lw_but000
    FROM BUT000
    WHERE partner = is_partner_wrk-external_partner_number
    AND TYPE = '2'.
    IF sy-subrc EQ 0.
    SELECT SINGLE * INTO lw_but100
    FROM but100
    WHERE partner = is_partner_wrk-external_partner_number
    AND rltyp = 'BUP004'.
    IF sy-subrc = 0.
    REFRESH lt_msgno.
    lw_msgno-sign = 'I'.
    lw_msgno-option = 'EQ'.
    lw_low-msgid = '/DS1/A'.
    lw_low-msgno = '139'.
    lw_msgno-low = lw_low.
    APPEND lw_msgno TO lt_msgno.
    CALL FUNCTION 'CRM_MESSAGES_DELETE'
    EXPORTING
    IT_R_MSGIDNO = lt_msgno
    iv_ref_object = is_partner_wrk-guid.
    l_partner = is_partner_wrk-external_partner_number.
    CALL FUNCTION 'COM_PARTNER_MESSAGE_COLLECT_OW'
    EXPORTING
    is_partner_control = is_partner_control
    iv_msgno = '139'
    iv_msgid = '/DS1/A'
    iv_msgty = 'E'
    iv_msgv1 = l_partner.
    ELSE.
    REFRESH lt_msgno.
    lw_msgno-sign = 'I'.
    lw_msgno-option = 'EQ'.
    lw_low-msgid = '/DS1/A'.
    lw_low-msgno = '139'.
    lw_msgno-low = lw_low.
    APPEND lw_msgno TO lt_msgno.
    CALL FUNCTION 'CRM_MESSAGES_DELETE'
    EXPORTING
    IT_R_MSGIDNO = lt_msgno
    iv_ref_object = is_partner_wrk-guid.
    ENDIF.
    ENDIF.
    ENDIF.
    endmethod.
    when I enter a partner with a wrong role, I got the message I have implemented. But the message is appearing 3 times in the errorlog. Can anyone please let me know the reason for this and solution to resolve this.
    Regards,
    Swetha

  • Premiere CS5: R6025 - pure virtual function call

    When I go to render the sequence, I get:R6025 - pure virtual function call and the program crashes.
    the problem details are reporting:
    Problem Event Name:    APPCRASH
      Application Name:    Adobe Premiere Pro.exe
      Application Version:    5.0.0.0
      Application Timestamp:    4bb568b7
      Fault Module Name:    Backend.dll
      Fault Module Version:    5.0.0.0
      Fault Module Timestamp:    4bb529dd
      Exception Code:    40000015
      Exception Offset:    00000000001ba7eb
      OS Version:    6.0.6001.2.1.0.256.6
      Locale ID:    1033
      Additional Information 1:    603b
      Additional Information 2:    3ec9d140f10efeb2f0a7d02f968c360a
      Additional Information 3:    a863
      Additional Information 4:    75c6e9df8ab75d63002e907cb106c2fa
    Running Vista 64bit on a Dell T7400 with 12GB ram and Raid HDD's
    Any thoughts?
    Thanks
    Paul

    I'm having the same issue:
    Faulting application name: Adobe Premiere Pro.exe, version: 5.0.1.0, time stamp: 0x4bf119d2
    Faulting module name: Backend.dll, version: 5.0.1.0, time stamp: 0x4bf0dba0
    Exception code: 0x40000015
    Fault offset: 0x00000000001baafb
    Faulting process id: 0x15a8
    Faulting application start time: 0x01cb1b96d983de39
    Faulting application path: C:\Program Files\Adobe\Adobe Premiere Pro CS5\Adobe Premiere Pro.exe
    Faulting module path: C:\Program Files\Adobe\Adobe Premiere Pro CS5\Backend.dll
    Report Id: 6d0f1532-878a-11df-a3c5-81e14690b8b6
    Crashing during rendering.
    I 'm running Windows 7, 64 bit, Dell Covet 6400, Nvida Quadro FX3700M, 4gb ram.
    Issue occurs at the same frame, 802 of 2961 everytime I make at attempt to render.I've also noticed the Premier remains in memory after the crash.
    Has this been reported to Adobe or added to the bus list? If not, any idea how to get it added?
    thanks

  • Intermittent Runtime error - pure virtual function call

    I have an intermittent runtime error - pure virtual function call & don't know what cause it? Since It only occurs & crashes once awhile therefore it's difficult to trap it for debugging.I suspect it come from TestStand ActiveX API which I use in my User Interface Application project but I'm not really sure.
    Does anyone experience this kind of problem when working with TestStand API ? If so any
    suggestion? I have noticed in the TestStand API header file teapi.tlh contain many raw_.... function defined as pure virtual function. What are these raw_... function ? I don't think I use any of these function in my project.
    Many thanks!

    Danh,
    I don't believe that your problem can be solved with the information you have provided unless someone else has experienced the same symtpoms which coincidentally have the same cause as in your case.
    Is there any other information you can provide that can help localize the problem?
    1) What is happening when the error occurs?
    2) Does the error always occur in the same place?
    3) Does it always occur with use of certain resources (e.g. DAQ, GPIB, VISA, printer)?
    4) Does it occur when using the sequence editor?
    5) Does it occur when using one of the shipping operator interfaces?
    6) Does it occur only when using your operator interfaces?
    7)Is it related to a specific sequence or any sequence?
    8) Does it happen when you executed your sequence with/without a process model entr
    y point (i.e. Execute>>Test UUTs, Execute>>Singal Pass or Execute>>Run MainSequence)?
    9) How often does it happen?
    10) What version of TestStand are you using?
    11) With what language (include versions) are you programming your code modules?
    12) With what language (include versions) are you programming your operator interface?
    13) Is there any error code reported with this error message?
    14) Is this error reported in a TS run-time error dialog or is it reported directly 1by the operating system?
    15) Have you searched the web for related errors? For example, the following link describes a particular programming mistake that can lead to this error
    http://support.microsoft.com/support/kb/articles/Q125/7/49.asp
    By investigating answers to the above questions you may be able to narrow the cause of this error, which might allow you or others to help solve the problem.

  • Erreur R6025 "pure virtual function call"

    Bonjour
    Ci-joint un Vi labview, crée par Signal express. Fonctionnent pendant 24h, puis erreur : R6025, Pure virtual function call .
    On clique sur OK, puis fermeture de LABVIEW.
    Ce programme, doit enregistrer 24/24 des mesures qui sont stockées dans des variables partagées.
    Ces variables partagées sont remplies par un autre Vi d'acquisition.
    Attachments:
    Neutronique Harchivage.vi ‏301 KB

    Bonjour,
    L'erreur R6025 est une erreur Windows qui semble liée à des problèmes réseaux ou des paramètres Windows.
    Vous pouvez essayer ces quelques solutions :
    - désactiver le Firewall,
    - désactiver les anciennes version du Run-Time Engine de LabVIEW.
    Pour nous aider à mieux comprendre votre problème, voici quelques questions supplémentaires :
    - Quelle version de LabVIEW et de SignalExpress avez-vous? Quelle version de Windows ?
    - Est-ce qu'une mise à jour de Windows a eu lieu au moment de l'erreur ou dans les jours avant le lancement du programme?
    - Est-ce que le programme a déjà fonctionné ?
    Cordialement,
    Charlotte F. | CLAD
    National Instruments France
    #adMrkt{text-align: center;font-size:11px; font-weight: bold;} #adMrkt a {text-decoration: none;} #adMrkt a:hover{font-size: 9px;} #adMrkt a span{display: none;} #adMrkt a:hover span{display: block;}
    >> "Du 11 octobre au 17 novembre, 2 sessions en parallèle : bien démarrer - approfondir vos connais...

  • R 6025 pure virtual Function Call

    Hello, I'm having trouble with my Premiere elemnts 12, to start the message - R 6025 pure virtual Function Call - Exception Unknown Software Exception (0x400000015) in 0x78b2d6fd. My system is XP pac 3. I tried to find the solution but I found .Agradeço who can guide me, thanks.

    I bought the license in January / 2014 package with Adobe Premiere / Photoshop Elements, and sent me for download. Was functioning normally and is only now that had this error. My XP SP3 32-bit Pentium Dual Core E 6500 2.93 GHz, 2 GB RAM and 300 GB of free space. The original anti virus is Kaspersky Internet Security and have the latest version of Quick Time. I have made many times the procedure to uninstall - CCleanner - reinstall. I do not understand "let us try creating a new User Account with Administrative Privileges and installing and running Premiere Elements 12 / 12.1 from this new account." Thank you.

Maybe you are looking for

  • Password for software?

    I am an exsisting iPod user and have just bought the new Nano for my wife. I would like to use the two different iPods from the same computer. When setting up my wifes Nano it required a software up date, which I downloaded. It then asked me for my p

  • Macbook Pro display has no picture after I turn it on

    I am running 10.6.7 on a MacBook Pro (15-inch Early 2008). The machine was fine this morning and an hour later, I booted it up and the screen remains dark. The light on the front of the machine shows that it is on. The battery is charged and the lapt

  • Varying result set and binding parameters in sqlcmd from variable

    SSIS  - Support of Multiple versions of our product Our Enterprise Data warehouse consolidates data from multiple data sources.  We have a requirement that we should be able to support data collection from different version of these data sources at t

  • Type of object from a database date/time column

    Hello everyone, I've got a concern regarding the way in which coldfusion is treating date/time columns in a database. In my opinion when I select a column that is let's say timestamp type - the object in a query is CF's date/time object. I've checked

  • Migration Assistant not connecting

    I am setting up a new Mac Mini (running Lion, I presume) and trying to migrate files from an older Mini (running OS 10.5.8) during set up.  I have them connected with an ethernet cable, but the old Mini doesn't "see" the new one and I can't get them