Trigger label edit on node when added to Tree

I have a button which adds a node to a tree (through the
tree's data provider); the new node appears on the tree and is
automatically selected, which is great ---but how can I
automatically switch this node's label into edit mode without the
user having to click on it?
The effect I'm going for is, the new node appears, is
selected and is in edit mode, e.g. a new folder that was created
with the label "New Folder" the value of which should be changed.
So far I've only accomplished the first 2 (new node appears and is
selected) I haven't yet figured out how to pro grammatically
trigger the ItemClick event on the tree component for the final
step.

Hi Tom,
Just had a similar issue that we were able to resolve successfully.
In our case, it appears that an Oracle DB JDBC driver can cause this random issue as described in <b>SAP notes #886596 and #1003198</b> ("Certain Oracle JDBC driver can cause data inconsistence.").
The notes include a resolution process and a work around recommendation to this issue, without having to apply a new SPS level...
Hope this helps (time has passed by since you asked this question, but it's never too late to get the right answer, as this issue seems to be persistent!).
Regards,
Joseph

Similar Messages

  • How to edit the node value of a tree in webdynpro java

    Hi ALL
    I have Tree UI element where i got displayed all the nodes by calling the BAPI
    Now my requirement is when i put the cursor at any node in the Tree struture then on click of insert button i need to insert the new node with the text  , the user has to be option to give new text for the new node dynamically  , so while adding the new node in a tree the tree has to choose the text for new node , like how to edit the node of a tree to add new text.
    If any one can send the sample code on the same then it would be great help to me.
    Similar requirement like in table UI Like however we are adding the new row in a table when we click on the insert button then cursor will go to that new row in a table where user can enter his details in the table.. now i am looking for the same requirement in a Tree UI element.
    is it possible the same requirement in tree UI element in webdynpro for Java??
    Thanks
    kallki reddy

    Hi kallki reddy
    In general I think this is not possible in the form you'd like. It seems the Tree control is read-only thing always. It cannot provide editing capabilities.
    Table is different thing. You can select within many different cell editors including Input Fields.
    I guess that you scenario could be implemented not with Tree control, but with Table with Master Column. The master column allows to bring up a hierarchy into a plain table. So it's just a tree inside a table.
    Here you can find further details: [TreeByNestingTableColumn API|http://help.sap.com/saphelp_nw70ehp1/helpdata/en/92/12a74046033913e10000000a155106/content.htm]
    BR, Siarhei

  • How can I see more than 100 users when adding users to a node?

    When adding new users through the User Management interface, only the
    first 100 entries are listed. How do I increase the number of entries
    so I can see the next hundred (or more) users? Is this done via the server
    configuration parameter maxsearchresult?
    <P>
    The GUI Add User to Node option was meant for infrequent adds in smaller
    environments. In large deployments (more than 100 user adds at a time), you
    should be using the command line script "unidsattach". See the Administrators
    Guide for more details on the command.
    <p>
    The parameter, maxsearchresult, is meant to limit the number of users that can
    be returned on a search request by the calendar client. For example, if you have
    1000's of calendar users and someone tries to search for all of them, this
    parameter will make sure that the user is not left waiting a long time for
    results.

    In Settings > Notification Center, try turning "on" all the six buttons under "Today View".  Also turn "on" the top two buttons under "Access on Lock Screen".  Doing that should show you "Tomorrow" at the bottom of Noticiation Center.

  • On a Mac, in Adobe Photoshop CC 2014, when adding audio to an edit, i get the message "Could not complete your request, because Dynamiclink is not available". When performing the exact same operation in Adobe Photoshop CC, i can add audio in the same way,

    On a Mac, in Adobe Photoshop CC 2014, when adding audio to an edit, i get the message "Could not complete your request, because Dynamiclink is not available".
    When performing the exact same operation in Adobe Photoshop CC, i can add audio in the same way, no error message. Any ideas to solve this, anyone? Would be greatly appreciated.

    I tried to update and it keeps telling me to get the Application Manager. And this is what happens
    Adobe Application Manager failed and it told me to download the Adobe Support Advisor.
    Adobe Support Advisor told me that there was an issue:" cpsid_82829s1: "A restart is pending," bootstrapper error has occurred. "Token Number: 40-87772-063201122012
    I followed the instructions it gave me to correct this issue:
    If you receive the error "Installer has detected that a machine restart is pending. It is recommended that you quit the installer, restart try again," do the following:
    #Restart the computer and try the installation again.
    #If the installation fails, delete the InProgress registry key: 
    Disclaimer: This procedure involves editing the Windows registry. Adobe doesn't provide support for editing the registry, which contains critical system and application information. Make sure to back up the registry before editing it. For more information about the registry, see Windows registry information for advanced users on the Microsoft support site, or contact Microsoft. 
    Launch Windows Registry Editor.
    (Windows XP) Choose Start > Run, type regedit in the Open text box and click OK.
    (Windows Vista/ Windows 7) Choose Start, type regedit in the Search box, and press Enter.
    Navigate to HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager.
    Delete the InProgress key.
    I was not able to find the "InProgress" key.

  • How to get label of Parent level nodes, when itemOpen() event of any node in AdvancedDataGrid in Flex?

    Hi all,
              This is the code, to get the label of every one parent level nodes, when we open the parent node item in AdvancedDataGrid in Flex.
    <?xml version="1.0"?><!-- dpcontrols/adg/SimpleGroupADGMXML.mxml --><mx:Application
    xmlns:mx="http://www.adobe.com/2006/mxml">
    <mx:Script>
    <![CDATA[
    import mx.controls.Alert; 
    import mx.events.AdvancedDataGridEvent; 
    import mx.collections.ArrayCollection; [
    Bindable] 
    private var groupData:ArrayCollection = new ArrayCollection([{Computer:
    "HardWare Devices", Device:"Keyboard", Company:
    "Logitech", PriceInRupees:"500"}, {Computer:
    "HardWare Devices", Device:"Keyboard", Company:
    "Microsoft", PriceInRupees:"500"},{Computer:
    "HardWare Devices", Device:"Mouse", Company:
    "Logitech", PriceInRupees:"300"},{Computer:
    "HardWare Devices", Device:"Mouse", Company:
    "Microsoft", PriceInRupees:"300"},{Computer:
    "HardWare Devices", Device:"Monitor", Company:
    "LG", PriceInRupees:"5000"},{Computer:
    "HardWare Devices", Device:"Monitor", Company:
    "Microsoft", PriceInRupees:"5000"}]);
    //This method is used to get label of every parent lavel nodes, when we open any item 
    private function getLabel(e:AdvancedDataGridEvent):void{
    Alert.show(e.item[
    "GroupLabel"]);}
    ]]>
    </mx:Script>
    <mx:Label text="NOTE : Open the every parent level nodes here. We can get the label of every one parent level nodes."color="
    blue" fontWeight="bold"/>
    <mx:AdvancedDataGrid id="groupADG" width="
    100%" height="437" initialize="gc.refresh();" itemOpen="getLabel(event)"
    >  
    <mx:dataProvider>
    <mx:GroupingCollection id="gc" source="{groupData}">
    <mx:grouping>
    <mx:Grouping>
    <mx:GroupingField name="Computer"/>
    <mx:GroupingField name="Device"/>
    </mx:Grouping>
    </mx:grouping>
    </mx:GroupingCollection>
    </mx:dataProvider>  
    <mx:columns>  
    <mx:AdvancedDataGridColumn headerText="
    Computer"/>
    <mx:AdvancedDataGridColumn dataField="Company"headerText="
    Company"/>
    <mx:AdvancedDataGridColumn dataField="PriceInRupees" headerText="PriceInRupees"/>
    </mx:columns>
    </mx:AdvancedDataGrid>

    Dialog\ResponseTime 6585
    "The dialog response time consists of the period of time from the request of the dialog to the dispatcher through the processing, to the ending of the dialog in the dispatcher and the transfer of the data to the presentation layer"
    This is not buffered as far as I know is measured on demand
    Read,
    http://help.sap.com/saphelp_nw70/helpdata/en/31/d7843b43c8e937e10000000a11402f/content.htm
    Regards
    Juan

  • Icon was changed to default icon when editting a node on JTree

    I have a tree with icon on nodes. However, when I edit the node, the icon is changed to default icon.
    I don't known how to write the treeCellEditor to fix that one.
    The following is my code:
    package description.ui;
    import java.awt.BorderLayout;
    import java.awt.Component;
    import java.awt.Dimension;
    import java.awt.event.ActionEvent;
    import javax.swing.ImageIcon;
    import javax.swing.JFrame;
    import javax.swing.JScrollPane;
    import javax.swing.JTree;
    import javax.swing.ToolTipManager;
    import javax.swing.WindowConstants;
    import javax.swing.tree.DefaultMutableTreeNode;
    import javax.swing.tree.DefaultTreeCellEditor;
    import javax.swing.tree.DefaultTreeCellRenderer;
    import javax.swing.tree.DefaultTreeModel;
    import javax.swing.tree.TreePath;
    import javax.swing.tree.TreeSelectionModel;
    public class Tree extends javax.swing.JPanel {
         private JTree tree;
         private JScrollPane jScrollPane1;
         public static void main(String[] args) {
              JFrame frame = new JFrame();
              frame.getContentPane().add(new Tree());
              frame.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
              frame.pack();
              frame.show();
         public Tree() {
              super();
              initGUI();
         private void initGUI() {
              try {
                   BorderLayout thisLayout = new BorderLayout();
                   this.setLayout(thisLayout);
                   setPreferredSize(new Dimension(400, 300));
                    jScrollPane1 = new JScrollPane();
                    this.add(jScrollPane1, BorderLayout.CENTER);
                        DefaultMutableTreeNode rootNode = createNode();
                        tree = new JTree(rootNode);
                        tree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);
                        jScrollPane1.setViewportView(tree);
                        ToolTipManager.sharedInstance().registerComponent(tree);
                        MyCellRenderer cellRenderer = new MyCellRenderer();
                        tree.setCellRenderer(cellRenderer);
                        tree.setEditable(true);
                        tree.setCellEditor(new DefaultTreeCellEditor(tree, cellRenderer));
                        //tree.setCellEditor(new MyCellEditor(tree, cellRenderer));
              } catch (Exception e) {
                   e.printStackTrace();
         private void btRemoveActionPerformed(ActionEvent evt) {
             TreePath path = tree.getSelectionPath();
             DefaultMutableTreeNode selectedNode = (DefaultMutableTreeNode)path.getLastPathComponent();
             ((DefaultTreeModel)tree.getModel()).removeNodeFromParent(selectedNode);
         private DefaultMutableTreeNode createNode() {
             DefaultMutableTreeNode rootNode = new DefaultMutableTreeNode("Doc");
             DefaultMutableTreeNode ch1 = createChuongNode(rootNode, "Ch1");
             DefaultMutableTreeNode ch2 = createChuongNode(rootNode, "Ch2");
             createTextLeafNode(ch1, "title");
             return rootNode;
         private DefaultMutableTreeNode createChuongNode(DefaultMutableTreeNode parent, String name) {
             DefaultMutableTreeNode node = new DefaultMutableTreeNode(new ChapterNodeData(name));
             parent.add(node);
             return node;
         private DefaultMutableTreeNode createTextLeafNode(DefaultMutableTreeNode parent, String name) {
             DefaultMutableTreeNode node = new DefaultMutableTreeNode(new TitleNodeData(name));
             parent.add(node);
             return node;
          private class MyCellRenderer extends DefaultTreeCellRenderer {
                 ImageIcon titleIcon;
                 ImageIcon chapterIcon;
                 public MyCellRenderer() {
                     titleIcon = new ImageIcon(getClass().getClassLoader()
                            .getResource("description/ui/icons/Text16.gif"));
                     chapterIcon = new ImageIcon(getClass().getClassLoader()
                            .getResource("description/ui/icons/Element16.gif"));
                 public Component getTreeCellRendererComponent(
                                     JTree tree,
                                     Object value,
                                     boolean sel,
                                     boolean expanded,
                                     boolean leaf,
                                     int row,
                                     boolean hasFocus) {
                     super.getTreeCellRendererComponent(
                                     tree, value, sel,
                                     expanded, leaf, row,
                                     hasFocus);
                     if (isChapterNode(value)) {
                         setIcon(chapterIcon);
                         setToolTipText("chapter");
                     } else if (isTextLeafNode(value)) {
                         setIcon(titleIcon);
                         setToolTipText("title");
                     return this;
                 protected boolean isChapterNode(Object node) {
                     return ((DefaultMutableTreeNode)node).getUserObject() instanceof ChapterNodeData;
                 protected boolean isTextLeafNode(Object node) {
                     return ((DefaultMutableTreeNode)node).getUserObject() instanceof TitleNodeData;
          private class MyCellEditor extends DefaultTreeCellEditor {
                 ImageIcon titleIcon;
                 ImageIcon chapterIcon;
              public MyCellEditor(JTree tree, DefaultTreeCellRenderer renderer) {
                  super(tree, renderer);
                  titleIcon = new ImageIcon(getClass().getClassLoader()
                         .getResource("description/ui/icons/Text16.gif"));
                  titleIcon = new ImageIcon(getClass().getClassLoader()
                         .getResource("description/ui/icons/Element16.gif"));
              public Component getTreeCellEditorComponent(
                           JTree tree,
                           Object value,
                           boolean isSelected,
                           boolean expanded,
                           boolean leaf,
                           int row) {
                  super.getTreeCellEditorComponent(tree, value, isSelected, expanded, leaf, row);
                  return this.editingComponent;
          abstract class NodeData{
              String name;
              public NodeData(String name) {
                  this.name = name;
              public String getName() {
                  return name;
              public void setName(String name) {
                  this.name = name;
              public String toString() {
                  return name;
          class ChapterNodeData extends NodeData {
              public ChapterNodeData(String s) {
                  super(s);
          class TitleNodeData extends NodeData {
              public TitleNodeData(String attr) {
                  super(attr);
    }

    Arungeeth wrote:
    I know the name of the node... but i cant able to find that nodeHere is some sample code for searching and selecting a node:
        TreeModel model = jtemp.getModel();
        if (model != null) {
            Object root = model.getRoot();
            search(model, root, "Peter");//search for the name 'Peter'
            System.out.println(jtemp.getSelectionPath().getLastPathComponent());
        } else {
            System.out.println("Tree is empty.");
    private void search(TreeModel model, Object o, String argSearch) {
        int cc;
        cc = model.getChildCount(o);
        for (int i = 0; i < cc; i++) {
            DefaultMutableTreeNode child = (DefaultMutableTreeNode) model.getChild(o, i);
            if (model.isLeaf(child)) {
                TreeNode[] ar = child.getPath();
                String currentValue = Arrays.toString(ar);
                if (currentValue.contains(argSearch)) {
                    jtemp.setSelectionPath(new TreePath(ar));
            } else {
                search(model, child, argSearch);
    }

  • Is it possible to specify the nodenum when adding a node to a RAC database

    hi gurus
    I have a 10.2 one-node cluster database,the olsnodes show that the current node has nodenum of 2(because I removed the nodenum 1 before because the machine needs to be replaced),now I want to add a new node to the cluster to replace the priviously removed node1,but finally I found that ORACLE will use nodenum 3 for the new node instead of nudenum1,
    olsnodes command shows:
    +[oracle@rac2 bin]$ ./olsnodes -n+
    rac2    2
    rac1    3
    Is it possible to modify the nodenum or specify the nodenum when adding a new node?
    Hoping I am understood,thanks for your time.

    hi all
    I have found the way to do it. Moidy the rootaddnode.sh to the desired nodenum before running it.It worked.
    Thanks still!

  • Error when adding any menu - FRM-40735: ON-INSERT trigger raised unhandled

    When I try to add any new menu in my newly cloned instance I get this error:
    Error when adding any menu - FRM-40735: ON-INSERT trigger raised unhandled excpetion. ORA-04031.
    Using Oracle EBS version 12.1.3.
    Details:
    Menu JOB_STRUCTURE_MENU
    User Menu Name Job Strucure Menu
    Menu Type Standard
    Description Menu to add job, grade, and incentives
    Seq = 1
    Prompt = Enter and Maintain
    Function = Combined Person & Assignment Form WF="US SHRMS TSKFLW
    When I click save I get the error.
    Any assistance would be greatly appreciated.
    Thanks!

    Please post the details of the application release, database version and OS.
    When I try to add any new menu in my newly cloned instance I get this error:
    Error when adding any menu - FRM-40735: ON-INSERT trigger raised unhandled excpetion. ORA-04031.Is the issue with all menus or specific ones only?
    Did AutoConfig complete successfully?
    When I click save I get the error.
    Any assistance would be greatly appreciated.Do you have any invalid objects in the database?
    Any errors in the database log file?
    Please obtain FRD log file for details about the error -- https://forums.oracle.com/forums/search.jspa?threadID=&q=FRD+AND+R12&objID=c3&dateRange=all&userID=&numResults=15&rankBy=10001
    Thanks,
    Hussein

  • Since the upgrade to IOS7, the default phone label when adding new contacts on my iPhone 5 is "Radio".  Previously the default was "Mobile" how can this be changed back to "Mobile"?

    Since the upgrade to IOS7, the default phone label when adding new contacts in my iPhone 5 is "Radio". Previously the default was "Mobile". It is a hassle as when my iPhone contacts are synched with Outlook via Exchange, the phone number I've entered on the iPhone doesn't show on the default Outlook view as it is a "Radio" number rather than a "Mobile", "Work", "Home", etc number. It is still stored both on the iPhone & in Outlook & I can still use the number to phone or SMS, it is just incorrectly labelled & hence the source of frustration.
    Apple please return the default to "Mobile" or alternatively find a way we can alter the default ourselves to "Mobile" or "Home" etc.

    The following previous discussion may help: https://discussions.apple.com/message/23846793#23846793

  • Full server pool crashes when adding new iSCSI server

    Hi,
    we have a Pool Group with 2 machines (1 Server Pool Master + Server Virtual Machine + Utility Server and another 1 Server Virtual Machine). Both have a iSCSI Shared Disk which builds /OVS partition.
    This is working, we can use High Availability, Migrate guests etc.
    But when adding new Server Virtual Machines to the pool (with guests running), current machines in the Pools get restarted.
    My question is, can server virtual machines be "hot added" to the pool group while guests are running?
    Thanks and regards,
    Marc

    Hi,
    hosts file seems to be correct.
    Messages logs during the crash time are the following:
    Node vmserver15 = Server Pool Master, Utility Master and Server Virtual Machine
    Dec 10 12:40:02 vmserver15 kernel: vlan500: port 3(vif6.0) entering disabled state
    Dec 10 12:40:02 vmserver15 kernel: device vif6.0 left promiscuous mode
    Dec 10 12:40:02 vmserver15 kernel: type=1700 audit(1260445202.434:16): dev=vif6.0 prom=0 old_prom=256 auid=4294967295 ses=4294967295
    Dec 10 12:40:02 vmserver15 kernel: vlan500: port 3(vif6.0) entering disabled state
    Dec 10 12:40:02 vmserver15 kernel: loop10: dropped 10114 extents
    Dec 10 12:40:03 vmserver15 udhcpc: udhcp client (v0.9.8) started
    Dec 10 12:40:03 vmserver15 udhcpc: Lease of 193.109.175.25 obtained, lease time 172800
    Dec 10 12:40:04 vmserver15 kernel: device vif7.0 entered promiscuous mode
    Dec 10 12:40:04 vmserver15 kernel: type=1700 audit(1260445204.774:17): dev=vif7.0 prom=256 old_prom=0 auid=4294967295 ses=4294967295
    Dec 10 12:40:04 vmserver15 kernel: vlan500: topology change detected, propagating
    Dec 10 12:40:04 vmserver15 kernel: vlan500: port 3(vif7.0) entering forwarding state
    Dec 10 12:40:05 vmserver15 kernel: loop10: fast redirect
    Dec 10 12:40:06 vmserver15 kernel: blkback: ring-ref 770, event-channel 9, protocol 1 (x86_32-abi)
    Dec 10 12:53:35 vmserver15 kernel: o2net: no longer connected to node vmserver10.pic.es (num 1) at 193.109.174.110:7777
    Dec 10 12:53:36 vmserver15 kernel: (4989,0):o2hb_do_disk_heartbeat:776 ERROR: Device "sdb1": another node is heartbeating in our slot!
    Dec 10 12:53:37 vmserver15 kernel: o2net: accepted connection from node vmserver10.pic.es (num 1) at 193.109.174.110:7777
    Dec 10 12:53:38 vmserver15 kernel: (4989,0):o2hb_do_disk_heartbeat:776 ERROR: Device "sdb1": another node is heartbeating in our slot!
    Dec 10 12:53:50 vmserver15 last message repeated 6 times
    Dec 10 12:53:51 vmserver15 kernel: o2net: no longer connected to node vmserver10.pic.es (num 1) at 193.109.174.110:7777
    Dec 10 12:53:52 vmserver15 kernel: (4989,0):o2hb_do_disk_heartbeat:776 ERROR: Device "sdb1": another node is heartbeating in our slot!
    Dec 10 12:53:53 vmserver15 kernel: o2net: accepted connection from node vmserver10.pic.es (num 1) at 193.109.174.110:7777
    Dec 10 12:53:53 vmserver15 kernel: (5638,0):dlm_send_remote_convert_request:393 ERROR: dlm status = DLM_IVLOCKID+
    Dec 10 12:53:53 vmserver15 kernel: (5638,0):dlmconvert_remote:327 ERROR: dlm status = DLM_IVLOCKID+
    Dec 10 12:53:53 vmserver15 kernel: (5638,0):ocfs2_cluster_lock:1206 ERROR: DLM error DLM_IVLOCKID while calling dlmlock on resource M000000000000000001050c00000000: bad lockid+
    Dec 10 12:53:53 vmserver15 kernel: (5638,0):ocfs2_inode_lock_full:2064 ERROR: status = -22+
    Dec 10 12:53:53 vmserver15 kernel: (5638,0):ocfs2_inode_lock_atime:2193 ERROR: status = -22+
    Dec 10 12:53:53 vmserver15 kernel: (5638,0):__ocfs2_file_aio_read:2434 ERROR: status = -22+
    Dec 10 12:53:53 vmserver15 kernel: (5638,0):dlm_send_remote_convert_request:393 ERROR: dlm status = DLM_IVLOCKID+
    Dec 10 12:53:53 vmserver15 kernel: (5638,0):dlmconvert_remote:327 ERROR: dlm status = DLM_IVLOCKID+
    Dec 10 12:53:53 vmserver15 kernel: (5638,0):ocfs2_cluster_lock:1206 ERROR: DLM error DLM_IVLOCKID while calling dlmlock on resource M000000000000000001050c00000000: bad lockid+
    Dec 10 12:53:53 vmserver15 kernel: (5638,0):ocfs2_inode_lock_full:2064 ERROR: status = -22+
    Dec 10 12:53:53 vmserver15 kernel: (5638,0):ocfs2_write_begin:1845 ERROR: status = -22+
    Dec 10 12:53:53 vmserver15 kernel: (5638,0):ocfs2_file_buffered_write:2016 ERROR: status = -22+
    Dec 10 12:53:53 vmserver15 kernel: (5638,0):__ocfs2_file_aio_write:2173 ERROR: status = -22+
    Dec 10 12:53:58 vmserver15 kernel: (7923,0):dlm_send_remote_convert_request:393 ERROR: dlm status = DLM_IVLOCKID+
    Dec 10 12:53:58 vmserver15 kernel: (7923,0):dlmconvert_remote:327 ERROR: dlm status = DLM_IVLOCKID+
    Dec 10 12:53:58 vmserver15 kernel: (7923,0):ocfs2_cluster_lock:1206 ERROR: DLM error DLM_IVLOCKID while calling dlmlock on resource M000000000000000000020744c1370e: bad lockid+
    Dec 10 12:53:58 vmserver15 kernel: (7923,0):ocfs2_inode_lock_full:2064 ERROR: status = -22+
    Dec 10 12:53:58 vmserver15 kernel: (7923,0):ocfs2_reserve_suballoc_bits:449 ERROR: status = -22+
    Dec 10 12:53:58 vmserver15 kernel: (7923,0):ocfs2_reserve_cluster_bitmap_bits:682 ERROR: status = -22+
    Dec 10 12:53:58 vmserver15 kernel: (7923,0):ocfs2_local_alloc_reserve_for_window:930 ERROR: status = -22+
    Dec 10 12:53:58 vmserver15 kernel: (7923,0):ocfs2_local_alloc_slide_window:1063 ERROR: status = -22+
    Dec 10 12:53:58 vmserver15 kernel: (7923,0):ocfs2_reserve_local_alloc_bits:537 ERROR: status = -22+
    Dec 10 12:53:58 vmserver15 kernel: (7923,0):__ocfs2_reserve_clusters:725 ERROR: status = -22+
    Dec 10 12:53:58 vmserver15 kernel: (7923,0):ocfs2_lock_allocators:677 ERROR: status = -22+
    Dec 10 12:53:58 vmserver15 kernel: (7923,0):ocfs2_write_begin_nolock:1751 ERROR: status = -22+
    Dec 10 12:53:58 vmserver15 kernel: (7923,0):ocfs2_write_begin:1861 ERROR: status = -22+
    Dec 10 12:53:58 vmserver15 kernel: (7923,0):ocfs2_file_buffered_write:2016 ERROR: status = -22+
    Dec 10 12:53:58 vmserver15 kernel: (7923,0):__ocfs2_file_aio_write:2173 ERROR: status = -22+
    Dec 10 12:53:58 vmserver15 kernel: loop: Write error at byte offset 37644512256, length 4096.+
    . <the above bold and cursive text is repetead few times>
    Dec 10 12:58:29 vmserver15 kernel: (5638,3):dlmconvert_remote:327 ERROR: dlm status = DLM_IVLOCKID
    Dec 10 12:58:29 vmserver15 kernel: (5638,3):ocfs2_cluster_lock:1206 ERROR: DLM error DLM_IVLOCKID while calling dlmlock on resource M000000000000000001050c00000000: bad lockid
    Dec 10 12:58:29 vmserver15 kernel: (5638,3):ocfs2_inode_lock_full:2064 ERROR: status = -22
    Dec 10 12:58:29 vmserver15 kernel: (5638,3):ocfs2_write_begin:1845 ERROR: status = -22
    Dec 10 12:58:29 vmserver15 kernel: (5638,3):ocfs2_file_buffered_write:2016 ERROR: status = -22
    Dec 10 12:58:29 vmserver15 kernel: (5638,3):__ocfs2_file_aio_write:2173 ERROR: status = -22
    Dec 10 13:01:16 vmserver15 syslogd 1.4.1: restart.
    Node vmserver10: Virtual Server Machine
    Dec 10 12:53:35 vmserver10 kernel: o2net: no longer connected to node vmserver15.pic.es (num 0) at 193.109.174.115:7777
    Dec 10 12:53:35 vmserver10 kernel: (5029,0):ocfs2_dlm_eviction_cb:98 device (8,17): dlm has evicted node 0
    Dec 10 12:53:35 vmserver10 kernel: (20996,0):dlm_get_lock_resource:844 E3FE9E5767CA457FA697980EB637E93B:M000000000000000000022044c1370e: at least one node (0) to recover before lock mastery can begin
    Dec 10 12:53:36 vmserver10 kernel: (5344,4):dlm_get_lock_resource:844 E3FE9E5767CA457FA697980EB637E93B:$RECOVERY: at least one node (0) to recover before lock mastery can begin
    Dec 10 12:53:36 vmserver10 kernel: (5344,4):dlm_get_lock_resource:878 E3FE9E5767CA457FA697980EB637E93B: recovery map is not empty, but must master $RECOVERY lock now
    Dec 10 12:53:36 vmserver10 kernel: (5344,4):dlm_do_recovery:524 (5344) Node 1 is the Recovery Master for the Dead Node 0 for Domain E3FE9E5767CA457FA697980EB637E93B
    Dec 10 12:53:36 vmserver10 kernel: (20996,0):ocfs2_replay_journal:1183 Recovering node 0 from slot 0 on device (8,17)
    Dec 10 12:53:37 vmserver10 kernel: o2net: connected to node vmserver15.pic.es (num 0) at 193.109.174.115:7777
    Dec 10 12:53:38 vmserver10 kernel: (8672,1):dlm_get_lock_resource:844 ovm:$RECOVERY: at least one node (0) to recover before lock mastery can begin
    Dec 10 12:53:38 vmserver10 kernel: (8672,1):dlm_get_lock_resource:878 ovm: recovery map is not empty, but must master $RECOVERY lock now
    Dec 10 12:53:38 vmserver10 kernel: (8672,1):dlm_do_recovery:524 (8672) Node 1 is the Recovery Master for the Dead Node 0 for Domain ovm
    Dec 10 12:53:40 vmserver10 kernel: kjournald starting. Commit interval 5 seconds
    Dec 10 12:53:51 vmserver10 kernel: o2net: no longer connected to node vmserver15.pic.es (num 0) at 193.109.174.115:7777
    Dec 10 12:53:53 vmserver10 kernel: o2net: connected to node vmserver15.pic.es (num 0) at 193.109.174.115:7777
    Dec 10 12:53:53 vmserver10 kernel: (3761,0):dlm_convert_lock_handler:489 ERROR: did not find lock to convert on grant queue! cookie=0:92+
    Dec 10 12:53:53 vmserver10 kernel: lockres: M000000000000000001050c0000000, owner=1, state=0+
    Dec 10 12:53:53 vmserver10 kernel:   last used: 0, refcnt: 3, on purge list: no+
    Dec 10 12:53:53 vmserver10 kernel:   on dirty list: no, on reco list: no, migrating pending: no+
    Dec 10 12:53:53 vmserver10 kernel:   inflight locks: 0, asts reserved: 0+
    *Dec 10 12:53:53 vmserver10 kernel:   refmap nodes: [ ], inflight=0*+
    Dec 10 12:53:53 vmserver10 kernel:   granted queue:+
    Dec 10 12:53:53 vmserver10 kernel:     type=5, conv=-1, node=1, cookie=1:243, ref=2, ast=(empty=y,pend=n), bast=(empty=y,pend=n), pending=(conv=n,lock=n,cancel=n,unlock=n)+
    Dec 10 12:53:53 vmserver10 kernel:   converting queue:+
    Dec 10 12:53:53 vmserver10 kernel:   blocked queue:+
    . <the above bold and cursive text is repetead few times>
    Dec 10 12:57:18 vmserver10 modprobe: FATAL: Module ocfs2_stackglue not found.
    Dec 10 12:57:18 vmserver10 kernel: (3761,0):dlm_convert_lock_handler:489 ERROR: did not find lock to convert on grant queue! cookie=0:92+
    Dec 10 12:57:18 vmserver10 kernel: lockres: M000000000000000001050c0000000, owner=1, state=0+
    Dec 10 12:57:18 vmserver10 kernel:   last used: 0, refcnt: 3, on purge list: no+
    Dec 10 12:57:18 vmserver10 kernel:   on dirty list: no, on reco list: no, migrating pending: no+
    Dec 10 12:57:18 vmserver10 kernel:   inflight locks: 0, asts reserved: 0+
    *Dec 10 12:57:18 vmserver10 kernel:   refmap nodes: [ ], inflight=0*+
    Dec 10 12:57:18 vmserver10 kernel:   granted queue:+
    Dec 10 12:57:18 vmserver10 kernel:     type=5, conv=-1, node=1, cookie=1:243, ref=2, ast=(empty=y,pend=n), bast=(empty=y,pend=n), pending=(conv=n,lock=n,cancel=n,unlock=n)+
    Dec 10 12:57:18 vmserver10 kernel:   converting queue:+
    Dec 10 12:57:18 vmserver10 kernel:   blocked queue:+
    . <the above bold and cursive text is repetead few times>
    Dec 10 12:58:32 vmserver10 kernel: (3761,0):dlm_unlock_lock_handler:511 ERROR: failed to find lock to unlock! cookie=0:1849
    Dec 10 12:58:33 vmserver10 modprobe: FATAL: Module ocfs2_stackglue not found.
    Dec 10 12:59:02 vmserver10 kernel: o2net: connection to node vmserver15.pic.es (num 0) at 193.109.174.115:7777 has been idle for 30.0 seconds, shutting it down.
    Dec 10 12:59:02 vmserver10 kernel: (0,0):o2net_idle_timer:1503 here are some times that might help debug the situation: (tmr 1260446312.830107 now 1260446342.828243 dr 1260446312.830066 adv 1260446312.830319:1260446312.830320 func (b9f5fd13:506) 1260446312.830109:1260446312.830303)
    Dec 10 12:59:02 vmserver10 kernel: o2net: no longer connected to node vmserver15.pic.es (num 0) at 193.109.174.115:7777
    Dec 10 12:59:32 vmserver10 kernel: (3761,0):o2net_connect_expired:1664 ERROR: no connection established with node 0 after 30.0 seconds, giving up and returning errors.
    Dec 10 13:01:42 vmserver10 kernel: o2net: connected to node vmserver15.pic.es (num 0) at 193.109.174.115:7777
    Dec 10 13:01:45 vmserver10 kernel: ocfs2_dlm: Node 0 joins domain E3FE9E5767CA457FA697980EB637E93B
    Dec 10 13:01:45 vmserver10 kernel: ocfs2_dlm: Nodes in domain ("E3FE9E5767CA457FA697980EB637E93B"): 0 1
    Dec 10 13:01:51 vmserver10 kernel: o2net: accepted connection from node vmserver16.pic.es (num 2) at 193.109.174.116:7777
    Dec 10 13:01:56 vmserver10 kernel: ocfs2_dlm: Node 2 joins domain E3FE9E5767CA457FA697980EB637E93B
    Dec 10 13:01:56 vmserver10 kernel: ocfs2_dlm: Nodes in domain ("E3FE9E5767CA457FA697980EB637E93B"): 0 1 2
    Dec 10 13:09:05 vmserver10 modprobe: FATAL: Module ocfs2_stackglue not found.
    Dec 10 13:16:45 vmserver10 kernel: o2net: connection to node vmserver16.pic.es (num 2) at 193.109.174.116:7777 has been idle for 30.0 seconds, shutting it down.
    Dec 10 13:16:45 vmserver10 kernel: (0,0):o2net_idle_timer:1503 here are some times that might help debug the situation: (tmr 1260447375.655426 now 1260447405.655712 dr 1260447375.655413 adv 1260447375.655427:1260447375.655427 func (b9f5fd13:503) 1260446516.75600:1260446516.75608)
    Dec 10 13:16:45 vmserver10 kernel: o2net: no longer connected to node vmserver16.pic.es (num 2) at 193.109.174.116:7777
    Dec 10 13:17:15 vmserver10 kernel: (3761,0):o2net_connect_expired:1664 ERROR: no connection established with node 2 after 30.0 seconds, giving up and returning errors.
    Dec 10 13:17:19 vmserver10 kernel: (5029,0):ocfs2_dlm_eviction_cb:98 device (8,17): dlm has evicted node 2
    Dec 10 13:17:20 vmserver10 kernel: (3761,0):ocfs2_dlm_eviction_cb:98 device (8,17): dlm has evicted node 2
    Dec 10 13:29:05 vmserver10 kernel: o2net: no longer connected to node vmserver15.pic.es (num 0) at 193.109.174.115:7777
    Dec 10 13:29:05 vmserver10 kernel: (5029,0):ocfs2_dlm_eviction_cb:98 device (8,17): dlm has evicted node 0
    Dec 10 13:29:06 vmserver10 kernel: (5344,4):dlm_get_lock_resource:844 E3FE9E5767CA457FA697980EB637E93B:$RECOVERY: at least one node (0) to recover before lock mastery can begin
    Dec 10 13:29:06 vmserver10 kernel: (5344,4):dlm_get_lock_resource:878 E3FE9E5767CA457FA697980EB637E93B: recovery map is not empty, but must master $RECOVERY lock now
    Dec 10 13:29:06 vmserver10 kernel: (5344,4):dlm_do_recovery:524 (5344) Node 1 is the Recovery Master for the Dead Node 0 for Domain E3FE9E5767CA457FA697980EB637E93B
    Dec 10 13:29:06 vmserver10 kernel: (28412,0):ocfs2_replay_journal:1183 Recovering node 0 from slot 0 on device (8,17)
    Dec 10 13:29:09 vmserver10 kernel: kjournald starting. Commit interval 5 seconds
    Dec 10 13:29:16 vmserver10 kernel: o2net: accepted connection from node vmserver16.pic.es (num 2) at 193.109.174.116:7777
    Dec 10 13:29:20 vmserver10 kernel: ocfs2_dlm: Node 2 joins domain E3FE9E5767CA457FA697980EB637E93B
    Dec 10 13:29:20 vmserver10 kernel: ocfs2_dlm: Nodes in domain ("E3FE9E5767CA457FA697980EB637E93B"): 1 2
    Dec 10 13:32:08 vmserver10 kernel: o2net: connected to node vmserver15.pic.es (num 0) at 193.109.174.115:7777
    Dec 10 13:32:11 vmserver10 kernel: ocfs2_dlm: Node 0 joins domain E3FE9E5767CA457FA697980EB637E93B
    Dec 10 13:32:11 vmserver10 kernel: ocfs2_dlm: Nodes in domain ("E3FE9E5767CA457FA697980EB637E93B"): 0 1 2
    Dec 10 13:36:10 vmserver10 shutdown[28681]: shutting down for system reboot+
    I will investigate what seems to be going on and post it here.
    Thanks for your help.
    Edited by: Marc Caubet on 11-Dec-2009 02:05
    Edited by: Marc Caubet on 11-Dec-2009 02:07

  • TableSorter errors when adding new data

    so here is the deal:
    I am using the TableSorter.java helper class with DefaultTableModel
    from: http://java.sun.com/docs/books/tutorial/uiswing/components/table.html
    It works great when the data is static and I get it for the first time. however, occationally, when adding new data I get a NullPointerException error.
    in use:
    DefaultTableModel.addRow()
    DefaultTableModel.removeRow() and
    DefaultTableModel.insertRow() methods.
    Error:
    java.lang.ArrayIndexOutOfBoundsException: 5
         at com.shared.model.TableSorter.modelIndex(TableSorter.java:294)
         at com.shared.model.TableSorter.getValueAt(TableSorter.java:340)
         at javax.swing.JTable.getValueAt(Unknown Source)
         at javax.swing.JTable.prepareRenderer(Unknown Source)...
    code problem I:
        public Object getValueAt(int row, int column)
            return tableModel.getValueAt(modelIndex(row), column);
        }code problem II:
        public int modelIndex(int viewIndex)
                 return getViewToModel()[viewIndex].modelIndex;     
        }TableSroter class:
    package com.shared.model;
    import java.awt.*;
    import java.awt.event.*;
    import java.util.*;
    import java.util.List;
    import javax.swing.*;
    import javax.swing.event.TableModelEvent;
    import javax.swing.event.TableModelListener;
    import javax.swing.table.*;
    * TableSorter is a decorator for TableModels; adding sorting
    * functionality to a supplied TableModel. TableSorter does
    * not store or copy the data in its TableModel; instead it maintains
    * a map from the row indexes of the view to the row indexes of the
    * model. As requests are made of the sorter (like getValueAt(row, col))
    * they are passed to the underlying model after the row numbers
    * have been translated via the internal mapping array. This way,
    * the TableSorter appears to hold another copy of the table
    * with the rows in a different order.
    * <p/>
    * TableSorter registers itself as a listener to the underlying model,
    * just as the JTable itself would. Events recieved from the model
    * are examined, sometimes manipulated (typically widened), and then
    * passed on to the TableSorter's listeners (typically the JTable).
    * If a change to the model has invalidated the order of TableSorter's
    * rows, a note of this is made and the sorter will resort the
    * rows the next time a value is requested.
    * <p/>
    * When the tableHeader property is set, either by using the
    * setTableHeader() method or the two argument constructor, the
    * table header may be used as a complete UI for TableSorter.
    * The default renderer of the tableHeader is decorated with a renderer
    * that indicates the sorting status of each column. In addition,
    * a mouse listener is installed with the following behavior:
    * <ul>
    * <li>
    * Mouse-click: Clears the sorting status of all other columns
    * and advances the sorting status of that column through three
    * values: {NOT_SORTED, ASCENDING, DESCENDING} (then back to
    * NOT_SORTED again).
    * <li>
    * SHIFT-mouse-click: Clears the sorting status of all other columns
    * and cycles the sorting status of the column through the same
    * three values, in the opposite order: {NOT_SORTED, DESCENDING, ASCENDING}.
    * <li>
    * CONTROL-mouse-click and CONTROL-SHIFT-mouse-click: as above except
    * that the changes to the column do not cancel the statuses of columns
    * that are already sorting - giving a way to initiate a compound
    * sort.
    * </ul>
    * <p/>
    * This is a long overdue rewrite of a class of the same name that
    * first appeared in the swing table demos in 1997.
    * @author Philip Milne
    * @author Brendon McLean
    * @author Dan van Enckevort
    * @author Parwinder Sekhon
    * @version 2.0 02/27/04
    public class TableSorter extends AbstractTableModel
        protected TableModel tableModel;
        public static final int DESCENDING = -1;
        public static final int NOT_SORTED = 0;
        public static final int ASCENDING = 1;
        private static Directive EMPTY_DIRECTIVE = new Directive(-1, NOT_SORTED);
        public static final Comparator COMPARABLE_COMAPRATOR = new Comparator()
            public int compare(Object o1, Object o2)
                return ((Comparable) o1).compareTo(o2);
        public static final Comparator LEXICAL_COMPARATOR = new Comparator()
            public int compare(Object o1, Object o2)
                return o1.toString().compareTo(o2.toString());
        private Row[] viewToModel;
        private int[] modelToView;
        private JTableHeader tableHeader;
        private MouseListener mouseListener;
        private TableModelListener tableModelListener;
        private Map columnComparators = new HashMap();
        private List sortingColumns = new ArrayList();
        public TableSorter()
            this.mouseListener = new MouseHandler();
            this.tableModelListener = new TableModelHandler();
        public TableSorter(TableModel tableModel)
            this();
            setTableModel(tableModel);
        public TableSorter(TableModel tableModel, JTableHeader tableHeader)
            this();
            setTableHeader(tableHeader);
            setTableModel(tableModel);
        private void clearSortingState()
            viewToModel = null;
            modelToView = null;
        public TableModel getTableModel()
            return tableModel;
        public void setTableModel(TableModel tableModel)
            if (this.tableModel != null)
                this.tableModel.removeTableModelListener(tableModelListener);
            this.tableModel = tableModel;
            if (this.tableModel != null)
                this.tableModel.addTableModelListener(tableModelListener);
            clearSortingState();
            fireTableStructureChanged();
        public JTableHeader getTableHeader()
            return tableHeader;
        public void setTableHeader(JTableHeader tableHeader)
            if (this.tableHeader != null)
                this.tableHeader.removeMouseListener(mouseListener);
                TableCellRenderer defaultRenderer = this.tableHeader.getDefaultRenderer();
                if (defaultRenderer instanceof SortableHeaderRenderer)
                    this.tableHeader.setDefaultRenderer(((SortableHeaderRenderer) defaultRenderer).tableCellRenderer);
            this.tableHeader = tableHeader;
            if (this.tableHeader != null)
                this.tableHeader.addMouseListener(mouseListener);
                this.tableHeader.setDefaultRenderer
                        new SortableHeaderRenderer(this.tableHeader.getDefaultRenderer())
        public boolean isSorting()
            return sortingColumns.size() != 0;
        private Directive getDirective(int column)
            for (int i = 0; i < sortingColumns.size(); i++)
                Directive directive = (Directive)sortingColumns.get(i);
                if (directive.column == column)
                    return directive;
            return EMPTY_DIRECTIVE;
        public int getSortingStatus(int column)
            return getDirective(column).direction;
        private void sortingStatusChanged()
            clearSortingState();
            fireTableDataChanged();
            if (tableHeader != null)
                tableHeader.repaint();
        public void setSortingStatus(int column, int status)
            Directive directive = getDirective(column);
            if (directive != EMPTY_DIRECTIVE)
                sortingColumns.remove(directive);
            if (status != NOT_SORTED)
                sortingColumns.add(new Directive(column, status));
            sortingStatusChanged();
        protected Icon getHeaderRendererIcon(int column, int size)
            Directive directive = getDirective(column);
            if (directive == EMPTY_DIRECTIVE)
                return null;
            return new Arrow(directive.direction == DESCENDING, size, sortingColumns.indexOf(directive));
        private void cancelSorting()
            sortingColumns.clear();
            sortingStatusChanged();
        public void setColumnComparator(Class type, Comparator comparator)
            if (comparator == null)
                columnComparators.remove(type);
            else
                columnComparators.put(type, comparator);
        protected Comparator getComparator(int column)
            Class columnType = tableModel.getColumnClass(column);
            Comparator comparator = (Comparator) columnComparators.get(columnType);
            if (comparator != null)
                return comparator;
            if (Comparable.class.isAssignableFrom(columnType))
                return COMPARABLE_COMAPRATOR;
            return LEXICAL_COMPARATOR;
        private Row[] getViewToModel()
            if (viewToModel == null)
                int tableModelRowCount = tableModel.getRowCount();
                viewToModel = new Row[tableModelRowCount];
                for (int row = 0; row < tableModelRowCount; row++)
                    viewToModel[row] = new Row(row);
                if (isSorting())
                    Arrays.sort(viewToModel);
            return viewToModel;
        public int modelIndex(int viewIndex)
                 return getViewToModel()[viewIndex].modelIndex;     
        private int[] getModelToView()
            if (modelToView == null)
                int n = getViewToModel().length;
                modelToView = new int[n];
                for (int i = 0; i < n; i++)
                    modelToView[modelIndex(i)] = i;
            return modelToView;
        // TableModel interface methods
        public int getRowCount()
            return (tableModel == null) ? 0 : tableModel.getRowCount();
        public int getColumnCount()
            return (tableModel == null) ? 0 : tableModel.getColumnCount();
        public String getColumnName(int column)
            return tableModel.getColumnName(column);
        public Class getColumnClass(int column)
            return tableModel.getColumnClass(column);
        public boolean isCellEditable(int row, int column)
            return tableModel.isCellEditable(modelIndex(row), column);
        public Object getValueAt(int row, int column)
            return tableModel.getValueAt(modelIndex(row), column);
        public void setValueAt(Object aValue, int row, int column)
            tableModel.setValueAt(aValue, modelIndex(row), column);
        // Helper classes
        private class Row implements Comparable
            private int modelIndex;
            public Row(int index)
                this.modelIndex = index;
            public int compareTo(Object o)
                int row1 = modelIndex;
                int row2 = ((Row) o).modelIndex;
                for (Iterator it = sortingColumns.iterator(); it.hasNext();)
                    Directive directive = (Directive) it.next();
                    int column = directive.column;
                    Object o1 = tableModel.getValueAt(row1, column);
                    Object o2 = tableModel.getValueAt(row2, column);
                    int comparison = 0;
                    // Define null less than everything, except null.
                    if (o1 == null && o2 == null)
                        comparison = 0;
                    } else if (o1 == null)
                        comparison = -1;
                    } else if (o2 == null)
                        comparison = 1;
                    } else {
                        comparison = getComparator(column).compare(o1, o2);
                    if (comparison != 0)
                        return directive.direction == DESCENDING ? -comparison : comparison;
                return 0;
        private class TableModelHandler implements TableModelListener
            public void tableChanged(TableModelEvent e)
                // If we're not sorting by anything, just pass the event along.            
                if (!isSorting())
                    clearSortingState();
                    fireTableChanged(e);
                    return;
                // If the table structure has changed, cancel the sorting; the            
                // sorting columns may have been either moved or deleted from            
                // the model.
                if (e.getFirstRow() == TableModelEvent.HEADER_ROW)
                    cancelSorting();
                    fireTableChanged(e);
                    return;
                // We can map a cell event through to the view without widening            
                // when the following conditions apply:
                // a) all the changes are on one row (e.getFirstRow() == e.getLastRow()) and,
                // b) all the changes are in one column (column != TableModelEvent.ALL_COLUMNS) and,
                // c) we are not sorting on that column (getSortingStatus(column) == NOT_SORTED) and,
                // d) a reverse lookup will not trigger a sort (modelToView != null)
                // Note: INSERT and DELETE events fail this test as they have column == ALL_COLUMNS.
                // The last check, for (modelToView != null) is to see if modelToView
                // is already allocated. If we don't do this check; sorting can become
                // a performance bottleneck for applications where cells 
                // change rapidly in different parts of the table. If cells
                // change alternately in the sorting column and then outside of            
                // it this class can end up re-sorting on alternate cell updates -
                // which can be a performance problem for large tables. The last
                // clause avoids this problem.
                int column = e.getColumn();
                if (e.getFirstRow() == e.getLastRow()
                        && column != TableModelEvent.ALL_COLUMNS
                        && getSortingStatus(column) == NOT_SORTED
                        && modelToView != null)
                    int viewIndex = getModelToView()[e.getFirstRow()];
                    fireTableChanged(new TableModelEvent(TableSorter.this,
                                                         viewIndex, viewIndex,
                                                         column, e.getType()));
                    return;
                // Something has happened to the data that may have invalidated the row order.
                clearSortingState();
                fireTableDataChanged();
                return;
        private class MouseHandler extends MouseAdapter
            public void mouseClicked(MouseEvent e)
                JTableHeader h = (JTableHeader) e.getSource();
                TableColumnModel columnModel = h.getColumnModel();
                int viewColumn = columnModel.getColumnIndexAtX(e.getX());
                int column = columnModel.getColumn(viewColumn).getModelIndex();
                if (column != -1)
                    int status = getSortingStatus(column);
                    if (!e.isControlDown())
                        cancelSorting();
                    // Cycle the sorting states through {NOT_SORTED, ASCENDING, DESCENDING} or
                    // {NOT_SORTED, DESCENDING, ASCENDING} depending on whether shift is pressed.
                    status = status + (e.isShiftDown() ? -1 : 1);
                    status = (status + 4) % 3 - 1; // signed mod, returning {-1, 0, 1}
                    setSortingStatus(column, status);
        private static class Arrow implements Icon
            private boolean descending;
            private int size;
            private int priority;
            public Arrow(boolean descending, int size, int priority)
                this.descending = descending;
                this.size = size;
                this.priority = priority;
            public void paintIcon(Component c, Graphics g, int x, int y)
                Color color = c == null ? Color.GRAY : c.getBackground();            
                // In a compound sort, make each succesive triangle 20%
                // smaller than the previous one.
                int dx = (int)(size/2*Math.pow(0.8, priority));
                int dy = descending ? dx : -dx;
                // Align icon (roughly) with font baseline.
                y = y + 5*size/6 + (descending ? -dy : 0);
                int shift = descending ? 1 : -1;
                g.translate(x, y);
                // Right diagonal.
                g.setColor(color.darker());
                g.drawLine(dx / 2, dy, 0, 0);
                g.drawLine(dx / 2, dy + shift, 0, shift);
                // Left diagonal.
                g.setColor(color.brighter());
                g.drawLine(dx / 2, dy, dx, 0);
                g.drawLine(dx / 2, dy + shift, dx, shift);
                // Horizontal line.
                if (descending) {
                    g.setColor(color.darker().darker());
                } else {
                    g.setColor(color.brighter().brighter());
                g.drawLine(dx, 0, 0, 0);
                g.setColor(color);
                g.translate(-x, -y);
            public int getIconWidth()
                return size;
            public int getIconHeight()
                return size;
        private class SortableHeaderRenderer implements TableCellRenderer
            private TableCellRenderer tableCellRenderer;
            public SortableHeaderRenderer(TableCellRenderer tableCellRenderer)
                this.tableCellRenderer = tableCellRenderer;
            public Component getTableCellRendererComponent(JTable table,
                                                           Object value,
                                                           boolean isSelected,
                                                           boolean hasFocus,
                                                           int row,
                                                           int column)
                Component c = tableCellRenderer.getTableCellRendererComponent(table,
                        value, isSelected, hasFocus, row, column);
                if (c instanceof JLabel) {
                    JLabel l = (JLabel) c;
                    l.setHorizontalTextPosition(JLabel.LEFT);
                    int modelColumn = table.convertColumnIndexToModel(column);
                    l.setIcon(getHeaderRendererIcon(modelColumn, l.getFont().getSize()));
                return c;
        private static class Directive
            private int column;
            private int direction;
            public Directive(int column, int direction)
                this.column = column;
                this.direction = direction;
    }any input will be appreciated.
    thanks
    Peter

    The code you posted doesn't help us at all. Its just a duplicate of the code from the tutorial. The custom code is what you have written. For example do you update the TableModel from the Event Thread? Do you update the SortModel or the DefaultTableModel? If you actually provide your test code and somebody has already downloaded the sort classes, then maybe they will test your code against the classes. But I doubt if people will download the sort classes and create a test program just to see if they can duplicate your results (at least I know I'm not about to).

  • PSE 10 system slows down when adding files to catalog

    I recently switched from PSE 3 to PSE10 and had issues converting the catalog.  I never did resolve those so I decided to start with creating a new catalog in PSE 10.  My first session of adding photos worked fine.  When I restarted the task the next day, I was asked in participating in making the product better by sharing information about my use with Adobe.  I agreed to participate and very quickly noticed that my computer slowed considerably when adding photos from my hard drive.  The process still worked but I experienced a dramatic increase in the time it took for photos to be added (e.g. the cursor spins for a couple of minutes while the task is working).  I went under my account preferences and opted out of the product participation program but the problem has persisted.  I rebooted the computer to see if that would help but it has not.  I have turned off all media analysis and both optimized and repaired my catalog and while this has provided some improvement, there are still instances where the system slows down.  Now it seems that every other folder's worth of pictures (does not matter how many photos) I add causes this delay.
    I appreciate any help anyone can provide in determining why this slow down keeps occuring. 
    FYI, I am running a new Windows 7, 64-bit system with 8GB DDR-3-1066MHz, and 2 TB hard drive.

    Have you also edited the Preferences (Performance) to increase the amount of RAM that PSE can use?
    Do you have many background processes running?  Having a single HDD means that everything running on your computer has to wait in the queue for disk access.
    How many photos are you importing?
    What file types are the photos?
    How large are the photos?
    Ken

  • Hello.  How do I keep the actual size of a photo when adding to a Keepsake?  Used to do this but have forgotten how!

    Hello.  How do I keep the actual size of a photo when adding to a Keepsake?  Used to do this but have forgotten how!  Need help please!
    T.

    Here is my suggestion:
    Open a blank, new file (File>new>blank file) size 8.5x11"
    Open the collage
    Go to Select>all
    Go to Edit>copy
    Go back to the blank file created in step #1
    Go to Edit>paste. The collage will be on its own layer
    Access the move tool, and with the corner handles resize the collage. Using the corner handles should preserve the aspect ratio. If you open the rulers, you will have a point of reference as you go along.
    Print a draft copy to see if it will be suitable in the frame..
    Please report back with your progress.

  • TableAdapter Configuration Wizard gives error when adding new TableAdapter

    Hi,
    I recently downloaded and installed the ODT for visual studio on my computer. I am running VS2008 on Windows 7 64-bit. I am able to create an ODP.NET connection to the Oracle XE 10.2g instance that is running on my computer with no problems and use that connection to browse the database. When I add a DataSet to my project, and start adding TableAdapters to the DataSet, I am getting errors. In an attempt to figure out what the problem is, I have followed various scenarios. I will describe each scenario, and what the end result is, and then after I have described them all, I will explain what I think the problem might be. Here are the different scenarios I have used:
    Scenario 1:
    From the Server Explorer, highlight ALL of the tables in my schema and drag them to the designer (all table adapters are added with no issues). I can add additional queries to each of the TableAdapters and then change the additional queries by right clicking and choosing "Configure". This all works with no issues. However, on certain TableAdapters, if I try to modify the primary query (Fill,GetData()), I can open the query editor just fine, change various settings, etc, but when I click on "Finish" I get the following error:
    Configure TableAdapter TABLENAME failed.
    Index was outside the bounds of the array.
    Scenario 2:
    From the Server Explorer, drag tables from my schema onto the designer one at a time. Some tables get added just fine, but for the rest of them, I get the following error:
    Failed to merge object(s).
    Index was outside the bounds of the array.
    Scenario 3:
    On the Dataset Designer, add tables one at a time by right clicking and choosing "Add -> TableAdapter" and then using SQL to define the query for each table. Some tables get added just fine, but for the rest of them, I get the following error:
    Failed to add TableAdapter.
    Index was outside the bounds of the array.
    Ok... now that I have described all of the different scenarios, I will explain what I think the problem is, and why. Based on my research, I believe the underlying problem has to do with Foreign Key Constraints on the various tables. While working on Scenarios 2 & 3, the same exact tables worked just fine in both scenarios. When I started looking at the definitions for the tables in my schema, it turns out that all of the tables that failed had foreign key constraints defined. When I remove the FK constraints from a table, I am then able to add it to my dataset and change the default query with no problems. My original application used the System.Data.OracleClient provided by Microsoft. When adding my tableadapters using the microsoft data provider, the FK relations are automatically generated for me in the designer, but not with the Oracle Data Provider
    I would be happy to provide you with the DDL that I used for creating my schema (it is not very big) if needed.
    Thanks,
    Jim

    Sorry let me clarify some of the config a little more.
    MAIL101 - Exch 2013
    MAIL102 - Exch 2013
    AP104 - Witness (strictly a witness nothing else on this machine)
    EDGE01 - Exch 2007 Edge
    CAS01 - Exch 2007 Hub/CAS load balancer for CAS02/03
    CAS02 - Exch 2007 Hub/CAS
    CAS03 - Exch 2007 Hub/CAS
    MBOX01 - Exch 2007 Mail cluster
    MBOX02 - Exch 2007 Mail cluster node
    MBOX03 - Exch 2007 Mail cluster node
    RDC01, RDC02, RDC03 - all 2008 R2 root domain controllers for rootdomain.rootdomain
    DC01, DC02, DC03, DC04 - all 2008 R2 domain controllers for us.rootdomain.rootdomain
    All DCs are Global Catalogs.
    I can ping all DCs and root DCs fromboth MAIL101 and 102
    The Exchange Replication service is running on both MAIL101 and 102.
    DC03 is in the same site as the MAIL101/102 servers so I'll run all replication tests from here.
    DCDIAG comes back with all tests passed.
    repadmin /replsum comes back with 0 fails and no errors largest delta for any intersite communication is 13min.
    When I run Test-ReplicationHealth -Identity MAIL101 and also 102 they both come back as everything passed.  No errors.

  • How to put Sales employee (Splcode) Mandatory Field, when adding A/R invoice

    Hi,
    Kindly solve, How to put Sales employee (Splcode) Mandatory Field, when adding A/R invoice.
    Regards,
    Rajeev.

    Follow this step..
    1. In SQL Server, go to the SAP B1 Database you're using. 
    2. then on the Object Explorer , go to Database Folder, explode the SAP DB->Programmability->Stored Procedures->SBO_SP_TransactionNotification * the only Stored Procedure that is allowed to be edited. Just right click and modify
    3.  Try to paste this -> and click F5
    If
    @object_type ='13' and @transaction_type in ('A','U')
    Begin
    If EXISTS
    select DocEntry from ONIV
    Where DocEntry = @list_of_cols_val_tab_del
    and  SlpCode<>'-1'
    Begin
    set @error_message = 'Please select the Sales Employee'
    set @error = 1
    END
    END
    Regards
    Kennedy

Maybe you are looking for