Opened 11 years ago

Last modified 10 years ago

#855 new defect

IZ51: ClassNotFoundException - PEWizardAction

Reported by: zsiga Owned by:
Priority: normal Milestone:
Component: gui Version: 6.2u5
Severity: Keywords: Sun sge


[Imported from gridengine issuezilla]

        Issue #:      51            Platform:     Sun      Reporter: zsiga (zsiga)
       Component:     nbgui            OS:        All
     Subcomponent:    sge           Version:      6.2u5       CC:    None defined
        Status:       STARTED       Priority:     P3
      Resolution:                  Issue type:    DEFECT
                                Target milestone: 6.2u6
      Assigned to:    zsiga (zsiga)
      QA Contact:     andre
       * Summary:     ClassNotFoundException - PEWizardAction
   Status whiteboard:

     Issue 51 blocks:
   Votes for issue 51:     Vote for this issue

   Opened: Tue Dec 8 09:37:00 -0700 2009 

The following exception randomly appears:
java.lang.ClassNotFoundException: Will not load classes from default package

To produce similar exception:
A) Configure the following in layer.xml then run the app:
<folder name="Toolbars">
 <folder name="SGE Configuration">
  <file name="PEWizardAction.instance">
B)Let the Inspect run for a while (1/2 hour) without any user interaction. Then
open the Customize Toolbars dialog (View -> Toolbars -> Customize...). The
exception appears and SGE related actions do not have icons on the dialog.


Suggested Fix:
Most probably the problem is that the file objects created by the
CustomLayerBuilder contains only the instance of the dynamic actions in the
instanceCreate attribute and not the description how to create instance from
scratch. So if the reference gets lost (WeakReference) there is no instruction
in the layer.xml configuration how to recreate the object.
It should rather define methodValue as instanceCreate attribute and the
arguments needed to construct the proper combined action instance.

Work Around:
Restart Inspect.

The CustomLayerBuilder instantiates every action found in the Custom folder and
constructs the Dynamic*Action accordingly. Then it passes this Dynamic*Action
instance to the instanceCreate attribute of the file object.
Instead implement a factory method in the Dynamic*Action classes which accept
the related action list as arguments and let the framework instantiate it.

How to test:


   ------- Additional comments from zsiga Mon Dec 14 03:13:05 -0700 2009 -------
Change milestone to 62u6.

Change History (0)

Note: See TracTickets for help on using tickets.