Home » Developer & Programmer » Designer » Random form freeze (Oracle Designer, 10.1.2.0.2, Windows XP Professional SP3 v3264)
icon5.gif  Random form freeze [message #362185] Mon, 01 December 2008 05:06 Go to next message
Truly
Messages: 2
Registered: November 2008
Location: Novi Sad, Serbia
Junior Member
Greetings,

I am using Oralce Designer 10.1.2.0.2 on Windows XP Professional SP3 v3264. I am a part of a team developing an asset management and monitoring application.

I have a form which should be showing data from table AMM_POSAOD in hierarchical way. So I designed the form with 3 blocks. First one is TREE_BLK with a tree item, the second one (AMM_POSAOD) is showing details of the selected node in the tree and the third one (DUGMAD) is showing two buttons.

My problem is that form random freezes so that you can't do anything on it except selecting tree nodes. Even tool-bar and menu of the application doesn't work. Form works again if you restart the application, but it can freeze like I described above in any moment. Usually this happens right after you call the form from menu.

Java console output after freeze:
Oracle JInitiator: Version 1.3.1.22
Using JRE version 1.3.1.22-internal Java HotSpot(TM) Client VM
.
.
.
Forms Applet version is : 10.1.2.0

Exception occurred during event dispatching:

java.lang.IllegalArgumentException: oracle.forms.ui.TreeDataSource.getData(): illegal index
	at oracle.forms.ui.TreeDataSource.getData(Unknown Source)
	at oracle.forms.ui.TreeFactory.createItem(Unknown Source)
.
.
.


I populate TREE_BLK in WHEN-NEW-FORM-INSTANCE trigger.
DECLARE
  hTree         ITEM;
   v_Ignore      NUMBER;
   rg_emps       RECORDGROUP;
   Where_Clause  VARCHAR2(4000);
BEGIN
  Where_Clause := 'status = ''A''';
  
  IF :parameter.p_Lov_Mode = 1 THEN
    IF :parameter.p_Where_Clause IS NOT NULL  THEN
      Where_Clause := Where_Clause
                      ||' and ' ||: Parameter.p_Where_Clause;
      
      Set_Block_Property('AMM_POSAOD',Default_Where,Where_Clause);
    END IF;
    
    Set_Item_Property('dugmad.povratak',Visible,Property_True);
  ELSE
    Set_Item_Property('dugmad.povratak',Visible,Property_False);
  END IF;
  
  hTree := Find_Item('tree_blk.tree');
  
  fTree.Set_Tree_Property(hTree,fTree.Allow_Empty_Branches,Property_False);
  
  rg_emps := Create_Group_From_Query('rg_emps','select 1,level,naziv,null,POSAOD_PK
                                                    from AMM_POSAOD p1 where '
                                               ||Where_Clause
                                               ||'                                                                                                                 
                                                    start with 
                                                    (SELECT p2.POSAOD_PK
                                                    FROM amm_posaod p2
                                                    WHERE '
                                               ||Where_Clause
                                               ||' and p2.POSAOD_PK = p1.POSAOD_POSAOD_PK_NAD) IS NULL
                                                    connect by prior POSAOD_PK = 
                                                       (SELECT p2.POSAOD_PKFROM amm_posaod p2 WHERE '
                                               ||Where_Clause
                                               ||' and p2.POSAOD_PK = p1.POSAOD_POSAOD_PK_NAD)');
  
  v_Ignore := Populate_Group(rg_emps);
  
  fTree.Set_Tree_Property(hTree,fTree.Record_Group,rg_emps);
END;

I populate second block in WHEN-TREE-NODE-SELECTED trigger of the tree.
DECLARE
  Node_Value             VARCHAR2(512);
   blk_Id                 BLOCK;
   ExistIng_Where_Clause  VARCHAR2(512);
   New_Where              VARCHAR2(512);
BEGIN
  Node_Value := fTree.Get_Tree_Node_Property('TREE_BLK.TREE',:system.Trigger_Node,fTree.Node_Value);
  
  blk_Id := Find_Block('AMM_POSAOD');
  
  ExistIng_Where_Clause := Get_Block_Property(blk_Id,Default_Where);
  
  Set_Block_Property(blk_Id,Query_Allowed,Property_True);
  
  New_Where := 'posaod_pk='
               ||Node_Value;
  
  Set_Block_Property(blk_Id,Default_Where,New_Where);
  
  Go_Block('AMM_POSAOD');
  
  Execute_Query;
  
  Set_Block_Property(blk_Id,Default_Where,ExistIng_Where_Clause);
  
  Go_Block('TREE_BLK');
END;

I have uploaded fmb of the form for more information.

Also, I have tried to make a simple version of the form using Oracle Form Builder 10.1.2.0.2 with just one block containing the tree with slightly changed WHEN-NEW-FORM-INSTANCE trigger and even that simple form freezed in the same way.

Before I decided to post and ask for your help, I did some searching. I have found a post describing a similar problem. In some replys to that post, it has been said that random freezes where JInitiator bug and that upgrading to a new version would help. But that was for version much older then mine.

Right now I am really clueless and any help would be much appreciated.

Best regards.
  • Attachment: AMF2020.FMB
    (Size: 296.00KB, Downloaded 4595 times)
Re: Random form freeze [message #538614 is a reply to message #362185] Sat, 07 January 2012 11:25 Go to previous messageGo to next message
hammerhead
Messages: 1
Registered: January 2012
Junior Member
Did you solve this issue. I've same problem in Oracle App.Server 10.1.2.3.0 on RHEL5.3
Re: Random form freeze [message #538622 is a reply to message #538614] Sat, 07 January 2012 12:33 Go to previous message
Truly
Messages: 2
Registered: November 2008
Location: Novi Sad, Serbia
Junior Member
It has been quite a while since I left that firm and I can't remeber what was the solution. I think we solved it by installing the latest JInitiator version. If it doesn't work for you I will try to find out the solution by contacting my former colleagues.
Previous Topic: How to export relationships from exiting database
Next Topic: Refferential Integrities
Goto Forum:
  


Current Time: Sat Nov 23 15:12:01 CST 2024