Different behaviour of null ???......

hi,
I am not understanding what happening in this program.
public class myString
public myString(Object oby)
          System.out.println("In Object");
public myString(String str)
          System.out.println("In String");
     public static void main(String args[])
          myString ms=new myString(null);
Whenever i run this program this prints out put as "In String"
when I comment the constructor taking String value, it gives out put as
"In Object"
can any one explain this. I doesn't understand?
Help will be much appreciated.
Thanks in advance.
Regards
Sekhar

I'm not really sure what happens if you have two
classes that are equally distant from object--sayC1
extends Object and C2 extends Object and one ofyour
methods takes a C1 and the other a C2--or in other
ambiguous cases. You sould look at the languagespec
and or experiment to find out.>
It's a compiler error, so no problem there :)Whoah. Man.
Freaky, but makes sene.
Yes, if you pass constant null, then it complains. However, I had the following:
    public void m1(Double s) { System.err.println("Double"); }
    public void m1(Object o) { System.err.println("Obj"); }
    public void m1(Integer i) { System.err.println("Int"); }
    public Number getNum() { return null; }
    public void m2() { m1(getNum()); }It compiled and ran. Calling m2 printed "Obj"
But if I got rid of the Object signature for m1, then it didn't compile: "cannot resolve symbol."
So I guess if your most-specific sigs are all equidistant from Object, it walks up each branch until it finds a set of equivalent sigs where there is a non-ambigous "closest-to-Object". If it doesn't find one, the compiler complains.
I don't think I've ever had to think about this for real--most or all of my cases have been pretty intuitive--but it's something to be aware of.

Similar Messages

  • SQL Server Management Studio and Native Client different behaviour on delete

    I have a problem with transaction containing insert and delete to same table and some select/insert/update to some other tables. Problematic table has primary key defined as combination of column1 and column2.
    When two different instances using Native Client execute simultaneously this code and make inserts to table then delete part of code causes deadlock. However this doesn't happen when trying this situation in MS SQL Server Management Studio query.
    Is there some option that is missing from Native Client connection string which can cause this different behaviour?

    Hello,
    I don't think there is a difference in the behavior. SSMS uses ADO.NET and that Provider base on the Native Client.
    The difference will be more that way, when the transaction is commited and so the locks released. I guess your application keeps the transaction (much) longer open; you should commit a transaction as soon as possible to avoid long time locks and so
    deadlocks.
    Olaf Helper
    [ Blog] [ Xing] [ MVP]

  • In-different behaviour of join condition

    My query is of in-different behaviour of join condition with join between a varchar2 column and a number column. I am using the following join condition :-
    CM.UPDATED_BY=to_char(LM.LOGIN_ID)
    where CM.UPDATED_BY is a varchar2 column and LM.LOGIN_ID is a number column. Now, CM.UPDATED_BY also has number only but some previous & old data is having varchar2 data. So, for that reason, i put the to_char before LM.LOGIN_ID, otherwise, only
    CM.UPDATED_BY=to_char(LM.LOGIN_ID)
    would having been okay. Now, my real question is that the query with the condition,
    CM.UPDATED_BY=to_char(LM.LOGIN_ID)
    works fine as long as there is no 'character' data in 'CM.UPDATED_BY'. If i put the condition:
    CM.UPDATED_BY=to_char(LM.LOGIN_ID)
    then, the query is taking too long and the output is also not coming. Please help in solving my doubt as i need it resolved urgently.

    1) Did you intend for all 4 join conditions to be identical? From the text of your question, it sounds like some of the conditions should be different.
    2) How do you compare the running time when CM.UPDATED_BY has non-numerica data and when it has numeric data? If you are altering the data in the table, are you reanalyzing the table between runs? Is there a difference in the query plan in the two cases?
    Justin
    Distributed Database Consulting, Inc.
    www.ddbcinc.com/askDDBC

  • Different behaviour of XMLType storage

    hi,
    I have problem with different behaviour of storage type "BINARY XML" and regular storage ( simple CLOB I guess) of the XMLType datatype.
    Setup
    - Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - 64bit Production
    - XML file ( "Receipt.xml" ) with a structure like :
    <?xml version="1.0" encoding="UTF-8"?>
    <ESBReceiptMessage xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
         <ESBMessageHeader>
              <MsgSeqNumber>4713</MsgSeqNumber>
              <MessageType>Receipt</MessageType>
              <MessageVersion>1.1</MessageVersion>
         </ESBMessageHeader>
         <Receipt>
              <ReceiptKey>1234567-03</ReceiptKey>          
              <ReceiptLines>
                   <ReceiptLine><Material><MaterialKey>00011-015-000</MaterialKey></Material><Qty>47.0</Qty></ReceiptLine>
                   <ReceiptLine><Material><MaterialKey>00021-015-000</MaterialKey></Material><Qty>47.0</Qty></ReceiptLine>
                   <ReceiptLine><Material><MaterialKey>00031-015-000</MaterialKey></Material><Qty>47.0</Qty></ReceiptLine>
    .....etc....etc.....etc...
                   <ReceiptLine><Material><MaterialKey>09991-015-000</MaterialKey></Material><Qty>47.0</Qty></ReceiptLine>
                   <ReceiptLine><Material><MaterialKey>10001-015-000</MaterialKey></Material><Qty>47.0</Qty></ReceiptLine>
                   <ReceiptLine><Material><MaterialKey>10011-015-000</MaterialKey></Material><Qty>47.0</Qty></ReceiptLine>
              </ReceiptLines>
         </Receipt>
    </ESBReceiptMessage>=> 1 Header element : "Receipt" and exactly 1001 "ReceiptLine" elements.
    Problem:
    Test 1 :
    drop table xml_ddb;
    CREATE TABLE xml_ddb (id number,xml_doc XMLType);
    INSERT INTO xml_ddb (id, xml_doc)  VALUES (4716,XMLType(bfilename('XMLDIR', 'Receipt.xml'),nls_charset_id('AL32UTF8')));
    select count(1) from (
    SELECT dd.id,ta.Receiptkey,li.materialkey,li.qty
       FROM xml_ddb dd,
            XMLTable('/ESBReceiptMessage/Receipt' PASSING dd.xml_doc
                     COLUMNS ReceiptKey VARCHAR2(28) PATH 'ReceiptKey',
                             ReceiptLine XMLType PATH 'ReceiptLines/ReceiptLine') ta,
            XMLTable('ReceiptLine' PASSING ta.ReceiptLine
                     COLUMNS materialkey VARCHAR2(14)  PATH 'Material/MaterialKey',
                             qty         NUMBER(10)    PATH 'Qty') li
      COUNT(1)
          1001
    1 row selected.The storage of the XMLType column has not been specified.
    => All 1001 detailled rows are selected.
    => Everything is fine
    Test 2 :
    drop table xml_ddb;
    CREATE TABLE xml_ddb (id number,xml_doc XMLType) XMLType xml_doc store AS BINARY XML; -- <---- Different storage type
    INSERT INTO xml_ddb (id, xml_doc)  VALUES (4716,XMLType(bfilename('XMLDIR', 'Receipt.xml'),nls_charset_id('AL32UTF8')));
    select count(1) from (
    SELECT dd.id,ta.Receiptkey,li.materialkey,li.qty
       FROM xml_ddb dd,
            XMLTable('/ESBReceiptMessage/Receipt' PASSING dd.xml_doc
                     COLUMNS ReceiptKey VARCHAR2(28) PATH 'ReceiptKey',
                             ReceiptLine XMLType PATH 'ReceiptLines/ReceiptLine') ta,
            XMLTable('ReceiptLine' PASSING ta.ReceiptLine
                     COLUMNS materialkey VARCHAR2(14)  PATH 'Material/MaterialKey',
                             qty         NUMBER(10)    PATH 'Qty') li
      COUNT(1)
          1000
    1 row selected.Storage of the XMLType column has been defined as "BINARY XML"
    => Only 1000 rows are select
    => One row is missing.
    After some tests : There seems to be a "hard border" of 1000 rows that comes with the different datatype ( So if you put 2000 rows into the XML you will get also only 1000 rows back )
    Question
    As I am a newbie in XMLDB :
    - Is the "construction" with the nested tables in the select-statement maybe not recommended/"allowed" ?
    - Are there different ways to get back "Head" + "Line" elements in a relational structure ( even if there are more than 1000 lines) ?
    Thanks in advance
    Bye
    Stefan

    hi,
    General
    You are right. I have a predefined XSD structure. And now I try to find a way to handle this in Oracle ( up to now, we are doing XML handling in Java ( with JAXB ) outside the DB)
    => So I will take a look at the "object-relational" storage. Thank's for that hint.
    Current thread
    The question, whether there is an "artifical" border of 1000 rows, when joining 2 XML tables together, is still open....
    (although it might be not interesting for me anymore :-), maybe somebody else will need the answer...)
    Bye
    Stefan

  • Different behaviour between 1.4,1.5_05, 1.5_07.

    Hi and thanks in advance for your help,
    Looking for pointers to a solution for a problem I have.
    A set of Java classes subscribe to a subscription service and listen for updates on a network. To do this the JVM uses JNI (actually a JIntegra vendor product) to talk to the Windows DLL files on the server, it�s these files that actually listen for the updates. The information is then passed back up to the JVM (via the JIntegra libraries). The strange behaviour i get is as follows:
    1.     No problems with JDK 1.4.*
    2.     JDK1.5_05: The program runs fine for a few minutes and then crashes out BUT with no stack trace or errors at all (it just terminates).
    3.     JDK 1.5_07: The program runs ok to start with but then consumes all the file handles on the Windows server. After approx 4hrs the program hangs as it has consumed all the servers spare file handles (in fact 3,800,000 of them).
    The added problem of debugging this, is that we use a vendor for the Java/COM+ interaction and we don�t have the source code, But I have tried different versions of the JIntergra without any change in the behaviour (so i don't think its that). It appears to be the JVM version that causes the change in behaviour.
    I do not understand why I get such different behaviour from the different versions of Java? Although both JDK1.5 don't work.
    I was wondering if someone can point me in the right direction for trying to get JVM information outputted when the JDK1.5_05 crashes out.
    How can I put a hook in the JVM in my code to output information when it exits. I realise its doing it unexpectedly so this type of solution might not work but I find it strange that no error is thrown.
    Also; Does anyone know of any bugs that might possibly explain any this behaviour?
    Any ideas anyone.

    Jintegra recommend using 1.5. I will check the JNI bugs database to see if anything like this has happened before:
    Got this one stacktrace recently:
    # An unexpected error has been detected by HotSpot Virtual Machine:
    # Internal Error (4D555445583F57494E13120E4350500080), pid=1944, tid=1500
    # Java VM: Java HotSpot(TM) Client VM (1.5.0_07-b03 mixed mode, sharing)
    # Can not save log file, dump to screen..
    # An unexpected error has been detected by HotSpot Virtual Machine:
    # Internal Error (4D555445583F57494E13120E4350500080), pid=1944, tid=1500
    # Java VM: Java HotSpot(TM) Client VM (1.5.0_07-b03 mixed mode, sharing)
    --------------- T H R E A D ---------------
    Current thread is native thread
    Stack: [0x045e0000,0x04620000), sp=0x0461fb08, free space=254k
    Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
    V [jvm.dll+0x11f2eb]
    V [jvm.dll+0x62f13]
    V [jvm.dll+0xd1741]
    V [jvm.dll+0xd18f0]
    V [jvm.dll+0x90d16]
    --------------- P R O C E S S ---------------
    Java Threads: ( => current thread )
    0x03029730 JavaThread "J-Integra COM initialization thread (please don't touch)" daemon [_thread_blocked, id=1684]
    0x00237c28 JavaThread "DestroyJavaVM" [_thread_blocked, id=3112]
    0x009fc7c8 JavaThread "Thread-0" [_thread_blocked, id=2996]
    0x009a16a8 JavaThread "Low Memory Detector" daemon [_thread_blocked, id=2860]
    0x00238478 JavaThread "CompilerThread0" daemon [_thread_blocked, id=1464]
    0x0099f730 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=3168]
    0x009998e0 JavaThread "Finalizer" daemon [_thread_blocked, id=2928]
    0x0023fae0 JavaThread "Reference Handler" daemon [_thread_blocked, id=2268]
    Other Threads:
    0x009982d8 VMThread [id=2036]
    0x009a2ce8 WatcherThread [id=532]
    VM state:not at safepoint (normal execution)
    VM Mutex/Monitor currently owned by a thread: None
    Heap
    def new generation total 576K, used 244K [0x22ab0000, 0x22b50000, 0x22f90000)
    eden space 512K, 47% used [0x22ab0000, 0x22aec330, 0x22b30000)
    from space 64K, 6% used [0x22b40000, 0x22b410a8, 0x22b50000)
    to space 64K, 0% used [0x22b30000, 0x22b30000, 0x22b40000)
    tenured generation total 1408K, used 917K [0x22f90000, 0x230f0000, 0x26ab0000)
    the space 1408K, 65% used [0x22f90000, 0x23075430, 0x23075600, 0x230f0000)
    compacting perm gen total 8192K, used 1354K [0x26ab0000, 0x272b0000, 0x2aab0000)
    the space 8192K, 16% used [0x26ab0000, 0x26c02a20, 0x26c02c00, 0x272b0000)
    ro space 8192K, 67% used [0x2aab0000, 0x2b00d9f8, 0x2b00da00, 0x2b2b0000)
    rw space 12288K, 46% used [0x2b2b0000, 0x2b853808, 0x2b853a00, 0x2beb0000)
    Not sure what 'Internal Error (4D555445583F57494E13120E4350500080)' represents.
    Thanks for your advice.

  • Different behaviour of Flash content when on server

    Hi
    I have noticed different behaviours of my Flash movie in case
    a/ I am checking offline content (SWF) using the fault view (Show All)
    b/ I am checking  the SWF in a HTML file on a server.
    More concrete: Depending on a number of conditions I attach a movieclip to a certain object. This works fine in offline mode.
    Another example: Depending on a certain zoom level of the application, I unload some SWF.
    All works fine offline.
    When I check this online, the attach movieclip function only works in some cases, the unload of SWF does not work .
    What can be the cause ?
    bestregards
    eG

    Not sure about most of your questions -- this is all new stuff for me, too. But on this one item, I hope this helps:
    For example it tells me that a plugin (which has already been installed) needs to be installed.If you installed the Mozilla browser after initially installing the java plugin in IE, then the plugin needs to be installed within the Mozilla browser's plugins directory. And I have never been able to get Netscape or Firefox to install a Forms plugin properly. It seems like I need to run IE to get the plugin installed automatically. Then I go back to the other browser and all is ok. Looking into the Mozilla-based browser's plugins folders, I can see that running the plugin install through IE also copies the corresponding .dll file into all the Mozilla-based browsers' plugins folders.
    But since you have already installed the plugin in IE, I am not sure how you would get it to work for the other browser. But if you can identify the .dll required, just copy it yourself into your Mozilla browser's folder.

  • Different behaviour of j_security_check between 6.1 and 8.1

    Hi,
    we have a web-application that is secured via security-constraints in
    the web.xml. We are authenticating using FORM-based authentification and
    had this app deployed on a wls6.1. Now we have moved to 8.1 and have a
    different behaviour between 6.1 and 8.1 for log-in forms using the
    j_security_check. We have login-boxes on most pages:
    <form method="POST" action="j_security_check">
                                  Username<br><input type="text" name="j_username" size=11
    class="texteingabe"><br>
                                  Password<br><input type="password" name="j_password" size=8
    class="texteingabe"> <input type=image
    src="/dvrWebApp/htdocs/images/pfeil_rechts_hi.gif" border=0><br>
    </form>
    that on 6.1 redirected after the login to the page they were placed on -
    on 8.1 the login redirects to the root of the web-app, regardless of the
    page they are placed- can i change this back to the old 6.1-Behaviour?!
    cheers
    stf

    This sounds like bollocks, I was doing some form based security recently under 8.1 and there was no attempt to direct to any page i was not trying to access.
    The idea is you try to access a protected resource, your not authorized, so you are authenticated, then you continue on to that resource.
    Are you sure, that the resource your accessing does not direct you there because of some inbuilt business logic in your JSP/servlet ?

  • Different behaviour inside a Thread

    Hello ,
    I am developing a software to help in automating certain tasks related to certain voice switch , i connect to the switch using ssh . i send commands generally using a button that ptints the content of a textbox into the outputstream . every thing works fine as long as i print the command into the outputstream from the code of the button press event . This hangs the interdace because i have to wait for a specific output format . So i used a Thread to execute the same code so that the interface doesn't hang . The strange thing is after the thread finishes i am not able to receive any thing from the switch ( although the printing into the output stream doesn't produce any exceptions and this is not the same if i executed the same code without the thread) . The question is why the program has different behaviour inside a thread and outside it ?
    Best Regards ,

    >
    Sounds like this actually is more related to Swing than concurrency (if I'm correct). I think that everything is working, but you are failing to update the UI with the result. You are only allowed to update the UI from the AWT thread, so you probably need to publish the result using invokeLater or use a SwingWorker.

  • JComboBox - different behaviour in 1.3 and 1.4

    I have noticed that there is a difference in JCombobox behaviour in 1.3 and 1.4.
    I think it is better to give the program than explaining the issue.
    the below given program shows the difference.
    import javax.swing.* ;
    import java.awt.* ;
    import java.awt.event.* ;
    import java.util.* ;
    * Test program to show difference between
    * Combo behaviour in java1.3 and 1.4
    public class CTest extends JFrame
         private JComboBox combo1 ;
         private JComboBox combo2 ;
         public CTest()
              super() ;
         public void init()
         combo1 = new JComboBox() ;
              combo1.addItemListener( new ItemListener()
                        public void itemStateChanged( ItemEvent event )
                        if (null != combo1.getSelectedItem() && event.getStateChange() == ItemEvent.SELECTED)
                             loadCombo2(combo1.getSelectedIndex()+1) ;
         combo2 = new JComboBox() ;
              combo2.addItemListener( new ItemListener()
                        public void itemStateChanged( ItemEvent event )
                        if (null != combo2.getSelectedItem() && event.getStateChange() == ItemEvent.SELECTED)
                             System.out.println("Combo2 item selected : "+ combo2.getSelectedItem()) ;
              JPanel panel = new JPanel(new BorderLayout()) ;
              panel.add(combo1,BorderLayout.NORTH) ;
              panel.add(combo2,BorderLayout.SOUTH) ;
              getContentPane().add(panel) ;
         public void loadCombo1()
              combo1.removeAllItems() ;
              for (int iCount = 0 ; iCount <5 ; iCount++)
                   String strItem = "Item : "+iCount ;
              combo1.addItem(strItem) ;
              try
                   combo1.setSelectedIndex(0) ;
              catch(Exception e)
         private void loadCombo2(int itemCount)
              combo2.removeAllItems() ;
              for (int iCount = 0 ; iCount <itemCount ; iCount++)
                   String strItem = "Item : "+iCount ;
              combo2.addItem(strItem) ;
              try
                   combo2.setSelectedIndex(0) ;
              catch(Exception e)
         public static final void main(String args[])
              CTest app = new CTest() ;
              app.init() ;
              app.setSize(100,100) ;
              app.setVisible(true) ;
              app.loadCombo1() ;
    In jdk1.3 every time you change the selection in combo 1 there will be selection change in combo 2 also. but not in jdk1.4.
    i am not sure whether it is a bug. But surely te behaviour is different.
    any comments on this issue???

    Anil,
    I've just noticed this as well, so I had a quick look at the 1.4 sources. Quite simply, adding and removing items in a JComboBox will never fire an ItemStateChangedEvent, even if the selected item does change.
    The culprits are intervalAdded() and intervalRemoved() in JComboBox.java. Under 1.3 these methods called contentsChanged() which would then fire an ItemStateChangedEvent if necessary. Under 1.4, these methods are empty. Why? I have no idea. It seems like a bug to me, but can't see anything in the bug database about it. Hope someone from Sun can explain it.
    Regards,
    Peter

  • Possible Bug? Different behaviour for List and Set one-to-many mappings on deletePersistent()

    Hi,
    I have a PC class that represents a TreeNode object (a GcGroup), which
    has a one-to-many relationship with itself to keep track of its descendants.
    For example a hierarchy of A -> B -> C, where A has B,C as descendants
    and B has C as a descendant. This is tracked by adding or removing a
    descendant with a recursive method to update a TreeNode's parent's
    descendants when a child is added or removed.
    The odd behaviour happens when I delete a child and try to remove the
    child manually from all my parent's descendant relations when I use a
    HashSet (possibly happens with any Set). In this case kodo will remove
    the relations with the following SQL statement:
    DELETE FROM TREENODE_DESCENDANTSX JDOIDX = xxxx;
    So when I do my recursive call I get a JDOException thrown stating that
    the object xxxx has already been deleted.
    When I change the relationship to an ArrayList this exception is not
    thrown and I do not get the error.
    Looking at the SQL generated they look the same:
    2002-10-31 20:21:42,078 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] [ C:
    2002-10-31 20:21:42,078 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    27106317
    2002-10-31 20:21:42,078 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ; S:
    2002-10-31 20:21:42,078 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    28819334
    2002-10-31 20:21:42,078 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ; T:
    2002-10-31 20:21:42,078 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    10817575
    2002-10-31 20:21:42,078 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ; D:
    2002-10-31 20:21:42,078 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    02/10/31 20:21
    2002-10-31 20:21:42,078 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ]
    2002-10-31 20:21:42,078 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    UPDATE GCGroup SET JDOLOCKX=8, child_count=0 WHERE (id = 81 AND JDOLOCKX
    = 7)
    2002-10-31 20:21:42,078 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] [ C:
    2002-10-31 20:21:42,078 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    27106317
    2002-10-31 20:21:42,078 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ; S:
    2002-10-31 20:21:42,078 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    8331873
    2002-10-31 20:21:42,078 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ; T:
    2002-10-31 20:21:42,078 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    10817575
    2002-10-31 20:21:42,078 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ; D:
    2002-10-31 20:21:42,078 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    02/10/31 20:21
    2002-10-31 20:21:42,078 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ]
    2002-10-31 20:21:42,078 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    DELETE FROM GROUP__DESCENDANTSX WHERE JDOIDX = 12300
    2002-10-31 20:21:42,078 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] [ C:
    2002-10-31 20:21:42,078 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    27106317
    2002-10-31 20:21:42,078 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ; S:
    2002-10-31 20:21:42,078 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    8331873
    2002-10-31 20:21:42,078 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ; T:
    2002-10-31 20:21:42,093 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    10817575
    2002-10-31 20:21:42,093 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ; D:
    2002-10-31 20:21:42,093 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    02/10/31 20:21
    2002-10-31 20:21:42,093 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ]
    2002-10-31 20:21:42,093 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    DELETE FROM GROUP__USERSX WHERE group_id = 12300
    2002-10-31 20:21:42,093 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] [ C:
    2002-10-31 20:21:42,093 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    27106317
    2002-10-31 20:21:42,093 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ; S:
    2002-10-31 20:21:42,093 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    8331873
    2002-10-31 20:21:42,093 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ; T:
    2002-10-31 20:21:42,093 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    10817575
    2002-10-31 20:21:42,093 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ; D:
    2002-10-31 20:21:42,093 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    02/10/31 20:21
    2002-10-31 20:21:42,093 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ]
    2002-10-31 20:21:42,093 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    DELETE FROM GCGroup WHERE id = 12300
    2002-10-31 20:21:42,093 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] [ C:
    2002-10-31 20:21:42,093 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    27106317
    2002-10-31 20:21:42,093 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ; T:
    2002-10-31 20:21:42,093 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    10817575
    2002-10-31 20:21:42,093 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ; D:
    2002-10-31 20:21:42,093 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    02/10/31 20:21
    2002-10-31 20:21:42,093 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ]
    2002-10-31 20:21:42,093 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    commit data store transaction
    My methods look like the following:
    public void removeChild(TreeNode t) {
         _children.remove(t);
         removeDescendant(t);
    protected void removeDescendant(TreeNode t) {
         if (_parent != null) {
              _parent.removeDescendant(t);
         _descendants.remove(t);
    The following is the stack trace from the exception when using a HashSet:
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] [ C:
    2002-10-31 20:54:10,046 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    18799851
    2002-10-31 20:54:10,046 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ; S:
    2002-10-31 20:54:10,046 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    30836962
    2002-10-31 20:54:10,046 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ; T:
    2002-10-31 20:54:10,046 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    29139395
    2002-10-31 20:54:10,046 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ; D:
    2002-10-31 20:54:10,046 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    02/10/31 20:54
    2002-10-31 20:54:10,046 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ]
    2002-10-31 20:54:10,046 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    UPDATE GCGroup SET JDOLOCKX=3, child_count=0 WHERE (id = 12450 AND
    JDOLOCKX = 2)
    2002-10-31 20:54:10,046 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] [ C:
    2002-10-31 20:54:10,046 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    18799851
    2002-10-31 20:54:10,046 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ; S:
    2002-10-31 20:54:10,046 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    28630940
    2002-10-31 20:54:10,046 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ; T:
    2002-10-31 20:54:10,062 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    29139395
    2002-10-31 20:54:10,062 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ; D:
    2002-10-31 20:54:10,062 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    02/10/31 20:54
    2002-10-31 20:54:10,062 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ]
    2002-10-31 20:54:10,062 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    UPDATE GCGroup SET JDOLOCKX=41 WHERE (id = 2 AND JDOLOCKX = 40)
    2002-10-31 20:54:10,062 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] [ C:
    2002-10-31 20:54:10,062 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    18799851
    2002-10-31 20:54:10,062 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ; S:
    2002-10-31 20:54:10,062 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    29663640
    2002-10-31 20:54:10,062 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ; T:
    2002-10-31 20:54:10,062 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    29139395
    2002-10-31 20:54:10,062 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ; D:
    2002-10-31 20:54:10,062 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    02/10/31 20:54
    2002-10-31 20:54:10,062 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ]
    2002-10-31 20:54:10,062 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    DELETE FROM GROUP__DESCENDANTSX WHERE JDOIDX = 12451
    2002-10-31 20:54:10,078 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] [ C:
    2002-10-31 20:54:10,078 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    18799851
    2002-10-31 20:54:10,078 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ; S:
    2002-10-31 20:54:10,078 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    29663640
    2002-10-31 20:54:10,078 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ; T:
    2002-10-31 20:54:10,078 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    29139395
    2002-10-31 20:54:10,078 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ; D:
    2002-10-31 20:54:10,078 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    02/10/31 20:54
    2002-10-31 20:54:10,078 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ]
    2002-10-31 20:54:10,078 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    DELETE FROM GROUP__USERSX WHERE group_id = 12451
    2002-10-31 20:54:10,078 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] [ C:
    2002-10-31 20:54:10,078 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    18799851
    2002-10-31 20:54:10,078 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ; S:
    2002-10-31 20:54:10,078 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    29663640
    2002-10-31 20:54:10,078 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ; T:
    2002-10-31 20:54:10,078 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    29139395
    2002-10-31 20:54:10,078 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ; D:
    2002-10-31 20:54:10,078 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    02/10/31 20:54
    2002-10-31 20:54:10,078 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ]
    2002-10-31 20:54:10,078 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    DELETE FROM GCGroup WHERE id = 12451
    2002-10-31 20:54:10,093 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] [ C:
    2002-10-31 20:54:10,093 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    18799851
    2002-10-31 20:54:10,093 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ; S:
    2002-10-31 20:54:10,093 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    5057297
    2002-10-31 20:54:10,093 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ; T:
    2002-10-31 20:54:10,093 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    29139395
    2002-10-31 20:54:10,093 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ; D:
    2002-10-31 20:54:10,093 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    02/10/31 20:54
    2002-10-31 20:54:10,093 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ]
    2002-10-31 20:54:10,093 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    DELETE FROM GROUP__DESCENDANTSX WHERE JDOIDX = 12452
    2002-10-31 20:54:10,093 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] [ C:
    2002-10-31 20:54:10,093 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    18799851
    2002-10-31 20:54:10,093 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ; S:
    2002-10-31 20:54:10,093 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    5057297
    2002-10-31 20:54:10,093 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ; T:
    2002-10-31 20:54:10,093 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    29139395
    2002-10-31 20:54:10,093 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ; D:
    2002-10-31 20:54:10,093 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    02/10/31 20:54
    2002-10-31 20:54:10,093 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ]
    2002-10-31 20:54:10,093 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    DELETE FROM GROUP__USERSX WHERE group_id = 12452
    2002-10-31 20:54:10,093 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] [ C:
    2002-10-31 20:54:10,093 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    18799851
    2002-10-31 20:54:10,093 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ; S:
    2002-10-31 20:54:10,093 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    5057297
    2002-10-31 20:54:10,093 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ; T:
    2002-10-31 20:54:10,093 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    29139395
    2002-10-31 20:54:10,093 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ; D:
    2002-10-31 20:54:10,093 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    02/10/31 20:54
    2002-10-31 20:54:10,093 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ]
    2002-10-31 20:54:10,093 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    DELETE FROM GCGroup WHERE id = 12452
    2002-10-31 20:54:10,109 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] [ C:
    2002-10-31 20:54:10,109 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    18799851
    2002-10-31 20:54:10,109 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ; T:
    2002-10-31 20:54:10,109 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    29139395
    2002-10-31 20:54:10,109 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ; D:
    2002-10-31 20:54:10,109 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    02/10/31 20:54
    2002-10-31 20:54:10,109 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ]
    2002-10-31 20:54:10,109 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    roll back data store transaction
    2002-10-31 20:54:10,109 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] [ C:
    2002-10-31 20:54:10,109 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    18799851
    2002-10-31 20:54:10,109 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ; S:
    2002-10-31 20:54:10,109 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    4629956
    2002-10-31 20:54:10,109 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ; T:
    2002-10-31 20:54:10,109 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    29139395
    2002-10-31 20:54:10,109 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ; D:
    2002-10-31 20:54:10,109 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    02/10/31 20:54
    2002-10-31 20:54:10,109 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ]
    2002-10-31 20:54:10,109 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    SELECT t0.id, t0.JDOLOCKX, t0.child_count, t0.description,
    t0.global_read, t0.global_write, t0.name, t0.owner_id, t0.parent_id,
    t0.rank, t0.root_id, t0.user_count, t0.user_exists, t0.visibility FROM
    GCGroup t0 WHERE t0.id = 12451
    2002-10-31 20:54:10,125 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] [ C:
    2002-10-31 20:54:10,125 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    18799851
    2002-10-31 20:54:10,125 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ; S:
    2002-10-31 20:54:10,125 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    2951648
    2002-10-31 20:54:10,125 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ; T:
    2002-10-31 20:54:10,125 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    29139395
    2002-10-31 20:54:10,125 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ; D:
    2002-10-31 20:54:10,125 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    02/10/31 20:54
    2002-10-31 20:54:10,125 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo] ]
    2002-10-31 20:54:10,125 INFO
    [com.solarmetric.kodo.impl.jdbc.ee.ManagedConnectionFactoryImpl.kodo]
    SELECT t0.id, t0.JDOLOCKX, t0.child_count, t0.description,
    t0.global_read, t0.global_write, t0.name, t0.owner_id, t0.parent_id,
    t0.rank, t0.root_id, t0.user_count, t0.user_exists, t0.visibility FROM
    GCGroup t0 WHERE t0.id = 12452
    2002-10-31 20:54:10,140 INFO [STDOUT]
    com.gulfnet.common.actions.GroupAction : The exception is:
    javax.jdo.JDOException
    2002-10-31 20:54:10,140 INFO [org.jboss.web.localhost.Engine] action:
    com.gulfnet.common.actions.GroupAction : The exception is:
    javax.jdo.JDOException
    2002-10-31 20:54:10,140 INFO [STDOUT]
    com.gulfnet.common.actions.GroupAction : java.lang.NullPointerException
    2002-10-31 20:54:10,140 INFO [org.jboss.web.localhost.Engine] action:
    com.gulfnet.common.actions.GroupAction : java.lang.NullPointerException
    2002-10-31 20:54:10,140 ERROR [STDERR] javax.jdo.JDOException:
    java.lang.NullPointerException
    NestedThrowables:
    java.lang.NullPointerException
    2002-10-31 20:54:10,156 ERROR [STDERR] at
    com.solarmetric.kodo.ee.EEPersistenceManager.rollback(EEPersistenceManager.java:169)
    2002-10-31 20:54:10,156 ERROR [STDERR] at
    com.gulfnet.usermanager.UserManager.deleteGroup(UserManager.java:775)
    2002-10-31 20:54:10,156 ERROR [STDERR] at
    com.gulfnet.common.actions.GroupAction.deleteObject(GroupAction.java:146)
    2002-10-31 20:54:10,171 ERROR [STDERR] at
    com.gulfnet.common.actions.GroupAction.doAction(GroupAction.java:58)
    Kam

    Forgot to add that I am using SQLServer 2000, Jboss 3.0.3 and Kodo 2.3.4
    Kam

  • Different behaviour of a plug in in CS6 and CS5.5

    I've noticed a difference in a plugin behaviour in CS6 and CS5.5.
    In a SequenceSetup function the following call generates a PF_Cmd_ARBITRARY_CALLBACK in CS6 with the PF_Arbitrary_FLAT_SIZE_FUNC state of extra parameter. The same PF_Cmd_ARBITRARY_CALLBACK appears later in a plugin work and doesn't work properly in CS6. Though in CS5.5 there is no problem with this function, it doesn't generate any weird events.
    suites.ParamUtilsSuite1()->PF_GetCurrentState(in_data->effect_ref, &seqData->curSessionParamState); (code for CS5.5)
    suites.ParamUtilsSuite3()->PF_GetCurrentState(in_data->effect_ref,PF_P aramIndex_CHECK_ALL, NULL, NULL, &seqData->curSessionParamState); (updated code for CS6, in respect that the signature of PF_GetCurrentState has changed)
    I work in Windows 7, x64. CS6 is 11.0.0.378 version, CS5.5 is 10.5.0.253 version. The only change between these two version of the plug in is the PF_GetCurrentState signature. So I suppose that the problem is inside a new SDK. But I have no guess where it may be.. Do you have any idea what might have changed in CS6 to provide such an error?

    Hi Niakris,
    Thanks very much for closing the loop and reporting back what worked for you.  As to why there is a difference between CS5.5 and CS6, one of the engineers here explains:
    "I assume the behavior change is due to me making code in certain libraries thread-safe, and explicitly disallowing the execution of certain callbacks on anything other than the main thread. If it worked before CS6, it worked by accident, and was very unsafe to do."
    Glad to have you testing compatibility with CS6!
    Cheers,
    Zac

  • Different behaviour on servlet w/o servlet-mapping and init parameters

    I was playing around and found, that the init-parameter of a servlet is always null if there is no servlet mapping. I did not define a servlet mapping because I used the servlet only for for (named) dispatching (client usage should not be allowed).
    web.xml:
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <web-app xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
    http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4">
      <servlet>
        <servlet-name>InitParamServlet</servlet-name>
        <servlet-class>test.InitParamServlet</servlet-class>
        <init-param>
          <param-name>param1</param-name>
          <param-value>value1</param-value>
        </init-param>
      </servlet>
      <servlet-mapping>
        <servlet-name>InitParamServlet</servlet-name>
        <url-pattern>*.initparam</url-pattern>
      </servlet-mapping>
    </web-app>
    InitParamServlet.java:
    package test;
    import java.io.IOException;
    import java.io.PrintWriter;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    public class InitParamServlet extends HttpServlet{
      private static final long serialVersionUID = 1L;
      protected void doGet(HttpServletRequest request, HttpServletResponse response)
          throws ServletException, IOException {
        response.setContentType("text/html");
        PrintWriter pw = response.getWriter();
        pw.write(getServletName());
        pw.write(": param1=" + getInitParameter("param1"));
    }The URL http://localhost:8080/xxx/servlet/test.InitParamServletreturns org.apache.catalina.INVOKER.test.InitParamServlet: param1=null
    (on Tomcat), and the call to the same servlet with URL http://localhost:8080/xxx/test.initparamreturns InitParamServlet: param1=value1 instead (the correct init parameter value)!
    The same happens with jetty. This looks strange for me; I would expect the same behaviour for the servlet (independent from servlet-mapping-tag in the web.xml).

    When you call the url
    http://localhost:8080/xxx/servlet/test.InitParamServlet
    you are actually calling the invoker servlet that is defined in the default conf/web.xml. If you look at this web.xml file you will see that the invoker is mapped with the pattern "/servlet/*" which maps to the above url. The request goes to this servlet which parses the url and then calls the InitParamServlet class.
    When you call the url
    http://localhost:8080/xxx/test.initparam
    you are matching the url pattern you defined in the WEB-INF/web.xml file ("*.initparam"). This time the request goes to servlet instance that you defines in the servlet naming tags as "InitParamServlet" and since you defined init params they are populated.
    Note that these urls will also match the "*.initparam" pattern
    http://localhost:8080/xxx/XXXXX.initparam
    http://localhost:8080/xxx/badpackage.initparam
    http://localhost:8080/xxx/A.initparam
    Most people would have simplely defined the second servlet mapping as "initparam" and accessed the servlet with the url
    http://localhost:8080/xxx/initparam

  • Recursive custom tag: different behaviour in WinXP and Linux

    Hi all,
    I've a strange behaviour on a web application for which I developed a custom tag to render a tree structure.
    This tag take in input an object representing the tree with all its nodes, and render every node, calling hitself recursively for every child of every node.
    This tag is used inside a jsp.
    I deployed my webapp on JBoss in a WinXP Pro environment, and everything is ok. Then I deployed the same webapp on JBoss in a Linux Env, and the call to the custom tag... doesn't write anything (with the same input).
    Used jdk are 1.6.0_10 on WinXP and 1.6.0_7 on Linux (an OpenSuse professional distribution). JBoss is 4.2 (I did tests with JBoss 4.2.2 and 4.2.3).
    Here is a sample code of my tag (file outree.tag):
    <%@ tag language="java" pageEncoding="UTF-8" %>
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
    <%@ taglib uri="http://jakarta.apache.org/taglibs/log-1.0" prefix="log" %>
    *<%@ taglib prefix="ousel" tagdir="/WEB-INF/tags/ouselector" %>*
    <%@ attribute name="subtree"
              required="true"
              type="my.webapp.TreeObject" %>
    <%@ attribute name="subroot_index" required="true" type="java.lang.Integer"%>
    <log:debug category="my.webapp.ousearch.taglib" message="Tag library called, starting operations..." />
    <c:if test="${not empty subtree.children}">
         <c:set var="next_subtree_index" value="${subroot_index + 1}"/>
         <ul class="subtree" id="subtree-${subroot_index}">
         <log:debug category="${logcategory}" message="We have children, calling recursively tag library on them (next subtree index: ${next_subtree_index})..." />
         <c:forEach var="currentOUChild" items="${subtree.children}">
              *<ousel:outree subtree="${currentOUChild}" subroot_index="${next_subtree_index}"/>*
              <c:set var="next_subtree_index" value="${next_subtree_index + 1}"/>
         </c:forEach>
         </ul>
    </c:if>
    </li>The TreeObject contains a list of children that can contain other children and so on. On every child, I call recursively my custom tag to render with a set of nested <ul> elements the entire tree structure.
    Here the call from the jsp:
    <%@ taglib uri="http://jakarta.apache.org/taglibs/log-1.0" prefix="log" %>
    *<%@ taglib prefix="ousel" tagdir="/WEB-INF/tags/ouselector" %>*
    <log:debug category="${logcategory}" message="Building subtree ${ouSubtree} HTML structure..." />
    *<ousel:outree subtree="${ouSubtree}" subroot_index="1"/>*
    <log:debug category="${logcategory}" message="Subtree ${ouSubtree} HTML structure built" />
    ...Jakarta log taglibs is used to log the value of the parameter passed to the custom tag. In the Linux env I see that the passed object is not empty (it couldn't be null because the tag enforce it as a mandatory value).
    Any idea?

    I have found a workaround.
    Simply substitute the recursive invocation, with an import of a jsp that will call the custom tag.
    Note: You have to set your needed variable in request to make it visible to the jsp
    <%@ tag language="java" pageEncoding="UTF-8" %>
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
    <%@ taglib uri="http://jakarta.apache.org/taglibs/log-1.0" prefix="log" %>
    <%@ attribute name="subtree"
              required="true"
              type="my.webapp.TreeObject" %>
    <%@ attribute name="subroot_index" required="true" type="java.lang.Integer"%>
    <log:debug category="my.webapp.ousearch.taglib" message="Tag library called, starting operations..." />
    <c:if test="${not empty subtree.children}">
         <c:set var="next_subtree_index" value="${subroot_index + 1}"/>
         <ul class="subtree" id="subtree-${subroot_index}">
         <log:debug category="${logcategory}" message="We have children, calling recursively tag library on them (next subtree index: ${next_subtree_index})..." />
         <c:forEach var="currentOUChild" items="${subtree.children}">
                    *<c:set var="_currentOUChild" value="${currentOUChild}" scope="request"/>*
                    *<c:set var="_next_subtree_index" value="${next_subtree_index}" scope="request"/>*
              *<c:import url="/WEB-INF/tags/outtree.jsp"/>*
              <c:set var="next_subtree_index" value="${next_subtree_index + 1}"/>
         </c:forEach>
         </ul>
    </c:if>
    </li>Here is the imported jsp (outtree.jsp):
    <%@ taglib prefix="ousel" tagdir="/WEB-INF/tags/ouselector" %>
    <ousel:outree subtree="${_currentOUChild}" subroot_index="${_next_subtree_index}"/>

  • Different behaviours when exporting pdf

    hi,
    i'm facing a strange behaviour when trying to export a pdf that is generated from db. i want to make pdfs available via dialog box. i set disposition to attachment in the response header. whereas FireFox shows the dialog box (as expected), IE renders the pdf in the same window:
       * downloads the report in the requested export format
      public String exportReport()
        String outcome ="error";
        LayoutXSLT layout = null;
        ByteArrayInputStream xslt_bais=null;
        ByteArrayInputStream xml_bais=null;
        byte[] content=null;
        ByteArrayOutputStream fosByte = new ByteArrayOutputStream ();
        String fileName = "Report";
        String disposition="attachment";  
        String contentType="application/pdf";
        FacesContext faces = FacesContext.getCurrentInstance();
        HttpServletResponse response = (HttpServletResponse) faces.getExternalContext().getResponse();
        FileExporter fex = new FileExporter();
        if (report != null && report.getRowCount()>0)
          try
            layout = accountingRemoteInterface.createXSLTLayout(userID, report.getForm().getId(), XSLT_TYPE.PDF);
          catch (UserAccountingException aex)
            messageError = errorWriter.writeUserAccountingException(rb, aex);
          if (layout != null)
            xslt_bais = new ByteArrayInputStream(layout.getXsltContent()); 
            try
              xml_bais = new ByteArrayInputStream(report.createXMLStream());
              XSLTHelper.doFOP(xslt_bais, xml_bais, fosByte, null);               
              fosByte.flush();
              fosByte.close();        
              content = fosByte.toByteArray();
              reportAvailable=1;
              outcome = fex.export(content, contentType, fileName, disposition, response);
              faces.responseComplete();
            catch (XMLWriterException xex)
              messageError = errorWriter.writeXmlException (rb, xex);
            catch (TransformerException tex)
              messageError = errorWriter.writeTransformerException(rb, tex);
            catch (FOPException foex)
              messageError = errorWriter.writeFopException(rb, foex);
            catch (IOException e)
              e.printStackTrace();
        else
          filteredItems=limitedItems=reportItems="";
          messageError=rb.getString("ERROR_NO_PDF_AVAILABLE");
        return outcome;
      public String export(byte[] cnt, String cType, String fName, String dispo,
          HttpServletResponse response) throws IOException
        String outcome = "error";
        byte[] content = cnt;
        String contentType = cType;
        String fileName = fName;
        String disposition = dispo;
        response.reset();
        response.setContentType(contentType);
        response.setContentLength(content.length);
        response.setHeader("Content-disposition", disposition + ";filename=\"" + fileName + "\"");
        response.setHeader("Cache-Control", "cache, must-revalidate");
        ServletOutputStream out = response.getOutputStream();
        out.write(content);
        outcome = "success";
        return outcome;
        }Any help appreciated!

    i checked the server log and couldn't find anything excepting a warning when setting the pdf layout :
    WARN  [BreakingAlgorithm] Line 1 of a paragraph overflows the available area. (fo:block, "****************")you mean i shouldn't stop the render response phase, don't you? what's the alternative? a file servlet?

  • Different behaviour in MAX vs. LabVIEW when writing to IMAQdx GigE attribute

    Hi, I am controlling a Dalsa GigE camera in LabVIEW RT using IMAQdx.  Apart from a couple of quirks with the interface we are acquiring images without much problems at the moment.  
    However, there are one or two issues that are confusing us.  In this case, it is possible to set an attribute in MAX (a command attribute that instructs the camera to perform internal calibration) but when setting the same attribute in LabVIEW the error 0xBFF69010 (-1074360304) Unable to set attribute is thrown.  See attached images.
    I check whether the attribute is writable before attempting a write.  It is, however the write is unsuccessful and reading the iswritable attribute then returns false.  In MAX I can write to this attribute without any issues.  
    Is there anything that I need to configure/read/write in my LabVIEW code that MAX does.  Does MAX write to all attributes (based on the values in the XML file) when it opens the camera or does it simply read all the values from the camera.  When LabVIEW opens a camera reference does it perform the same steps as what MAX does - I'm trying to figure out what the difference between MAX and LabVIEW could be that could be causing this behaviour.
    Any help will be appreciated.
    Solved!
    Go to Solution.
    Attachments:
    Diagram.png ‏15 KB
    FrontPanel.png ‏8 KB
    It works in MAX.png ‏20 KB

    AnthonV wrote:
    Hi, I am controlling a Dalsa GigE camera in LabVIEW RT using IMAQdx.  Apart from a couple of quirks with the interface we are acquiring images without much problems at the moment.  
    However, there are one or two issues that are confusing us.  In this case, it is possible to set an attribute in MAX (a command attribute that instructs the camera to perform internal calibration) but when setting the same attribute in LabVIEW the error 0xBFF69010 (-1074360304) Unable to set attribute is thrown.  See attached images.
    I check whether the attribute is writable before attempting a write.  It is, however the write is unsuccessful and reading the iswritable attribute then returns false.  In MAX I can write to this attribute without any issues.  
    Is there anything that I need to configure/read/write in my LabVIEW code that MAX does.  Does MAX write to all attributes (based on the values in the XML file) when it opens the camera or does it simply read all the values from the camera.  When LabVIEW opens a camera reference does it perform the same steps as what MAX does - I'm trying to figure out what the difference between MAX and LabVIEW could be that could be causing this behaviour.
    Any help will be appreciated.
    Hi AnthonV,
    "Quirky" is a good way to describe the Spyder3 when it comes to the GigE Vision/GenICam interface (as opposed to Dalsa's driver which communicates using custom serial commands to the camera over ethernet)....
    The Spyder3 has a lot of timing-dependent issues. It is possible that the delay between opening the camera and setting that feature is different via MAX vs your code in LabVIEW. Also, there are certain cases where MAX will surpress the error from being displayed. Ignoring the error shown vs. not, do you see the feature take effect in either of the two cases?
    The basic behavior between MAX and LabVIEW is the same. In both cases when you open the camera all the settings are loaded from our camera file which has the saved camera settings. This file is created the first time you open the camera and is updated whenever you click Save in MAX or call an API function to save the settings. In any case, I do know that the Spyder3 has various issues saving/restoring settings to our camera files.
    I suggest talking with Dalsa about the issues you are having. They might be able to set you up with newer firmware that addresses some of these problems (we have worked with them in the past to identify many of them).
    Eric

Maybe you are looking for