NullPointerException on JVM startup when changing Class.getDeclaredField()

On any JVM starting with 1.5 and later the included test case causes this exception on startup:
java.lang.NullPointerException
at java.util.Hashtable.put(Hashtable.java:394)
at java.lang.System.initProperties(Native Method)
at java.lang.System.initializeSystemClass(System.java:1072)
The test case involves overriding Class.getDeclaredField() via -Xbootclasspath/p. Originally the bug came out when using Instrumentation.redefineClasses().
To run the test case:
1) Download and unzip from [http://ngra.de/gdm-test.zip]
2) Run "java -cp asm-all-3.1.jar:gdm.jar Install", this will generate a gdm-boot.jar file.
3) Run "java -Xbootclasspath/p:gdm.jar:gdm-boot.jar Test", this should produce the error.
The test cases adds one method call before ARETURN instruction in Class. getDeclaredField(). The call is INVOKESTATIC Test.test()V.
Does anyone know if it's a known bug and if there are any workarounds for this? The same bug manifests in Instrumentation.redefineClasses() by messing up the constant pool when the getDeclaredField() is changed

Apparently the problem was that in Java 5+ there is a AtomicReferenceFieldUpdaterImpl, which is accessed from System.initializeClass() on JVM startup and which calls Class.getDeclaredField(). Since at that point the proper classloading is not set up yet, trying to access a class outside rt.jar causes a ClassNoDefFoundError cascading upwards to the NPE we get. The fix is to check the sun.misc.VM.isBooted() flag to be sure that class loading is allowed, otherwise skipping the injected code. Hope this can help someone :)

Similar Messages

  • JVM crash when adding method to class

    Hello,
    I am getting some kind of problem with the virtual machine. The JVM crashes when making a class (with new). It happened when I was adding some functionality to the class, I worked my way backwards and discovered it crashes when I add any new methods, if I comment them out again everything works, adding a method by any name causes to crash.
    I went in debug to find out where it was happening, and it happens on this line:
    public PerspectiveActionToolBarHeader createPerspectiveActionToolBarHeader() {
         PerspectiveActionToolBarHeader ret = null;
         ret = new PerspectiveActionToolBarHeader(this); // << here
         return ret;
    }The PerspectiveActionToolBarHeader is the class where adding methods causes it to fail. For example, it has the method
    public Container getContainer() {
         return this;
    }and works, but if I add:
    public void anything(){} it causes a crash on the new PerspectiveActionToolBarHeader(this);
    When stepped into with the debugger it goes to the (source not found) ClassNotFoundException and eventually before the crash the (stack?) looks like this:
    Launcher$AppClassLoader(ClassLoader).loadClass(String) line: not available     
    MaldiSoftwareOptionsUIEnsemble(PerspectiveUIEnsemble).createPerspectiveActionToolBarHeader() line: 72
    and the debugger describes the class just before the crash:
    Launcher$AppClassLoader (id=44)     
    arg0     "saiman.uiobjnew.PerspectiveToolBarButton" (id=51) << has just changed
    and the log file (not sure how much to copy here!):
    # A fatal error has been detected by the Java Runtime Environment:
    # EXCEPTION_ILLEGAL_INSTRUCTION (0xc000001d) at pc=0x005c0001, pid=15504, tid=20112
    # JRE version: 6.0_24-b07
    # Java VM: Java HotSpot(TM) Client VM (19.1-b02 mixed mode windows-x86 )
    # Problematic frame:
    # C 0x005c0001
    # If you would like to submit a bug report, please visit:
    # http://java.sun.com/webapps/bugreport/crash.jsp
    --------------- T H R E A D ---------------
    Current thread (0x011ca000): JavaThread "main" [_thread_in_vm, id=20112, stack(0x01140000,0x01190000)]
    siginfo: ExceptionCode=0xc000001d
    Registers:
    EAX=0x13e13248, EBX=0x6da0daa8, ECX=0x13e13250, EDX=0x13e131f8
    ESP=0x0118f93c, EBP=0x0118f9a0, ESI=0x011ca9b0, EDI=0x011ca9ac
    EIP=0x005c0001, EFLAGS=0x00010206
    Register to memory mapping:
    EAX=0x13e13248
    {method}
    - klass: {other class}
    EBX=0x6da0daa8
    0x6da0daa8 is pointing to unknown location
    ECX=0x13e13250
    {method}
    - klass: {other class}
    EDX=0x13e131f8
    {constMethod}
    - klass: {other class}
    - method: 0x13e13248 {method} 'flipVisible' '(I)V' in 'saiman/uiobjnew/PerspectiveActionToolBarHeader'
    - exceptions: 0x13bf11e8
    ESP=0x0118f93c
    0x0118f93c is pointing into the stack for thread: 0x011ca000
    "main" prio=6 tid=0x011ca000 nid=0x4e90 runnable [0x0118f000]
    java.lang.Thread.State: RUNNABLE
    EBP=0x0118f9a0
    0x0118f9a0 is pointing into the stack for thread: 0x011ca000
    "main" prio=6 tid=0x011ca000 nid=0x4e90 runnable [0x0118f000]
    java.lang.Thread.State: RUNNABLE
    ESI=0x011ca9b0
    0x011ca9b0 is pointing to unknown location
    EDI=0x011ca9ac
    0x011ca9ac is pointing to unknown location
    Top of Stack: (sp=0x0118f93c)
    0x0118f93c: 6d94272d 011ca370 13e17d40 011ca000
    0x0118f94c: 011ca000 01a30950 011ca748 011ca9b4
    0x0118f95c: 011cab3c 0118fb28 011c6748 011ca348
    0x0118f96c: 011ca370 011ca73c 6da0daa8 011ca350
    0x0118f97c: 011ca370 0118f9cc 011ca9a8 0118f9c8
    0x0118f98c: 011ca788 011ca370 011ca9b0 011ca000
    0x0118f99c: 13e17d40 0118f9cc 6d943009 00000910
    0x0118f9ac: 011ca9ac 00000001 011ca000 011ca000
    Instructions: (pc=0x005c0001)
    0x005bfff1: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff
    0x005c0001: ff ff 7f 00 00 00 00 00 00 00 00 ff ff ff ff 00
    Stack: [0x01140000,0x01190000], sp=0x0118f93c, free space=318k
    Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
    C 0x005c0001
    V [jvm.dll+0x153009]
    V [jvm.dll+0xdecdb]
    V [jvm.dll+0xe1887]
    V [jvm.dll+0xe1c46]
    V [jvm.dll+0xec09a]
    j saiman.uiobjnew.PerspectiveUIEnsemble.createPerspectiveActionToolBarHeader()Lsaiman/uiobjnew/PerspectiveActionToolBarHeader;+2
    j saiman.mv.ModelViewPerspectiveUIEnsemble.createPerspectiveActionToolBarHeader()Lsaiman/uiobjnew/PerspectiveActionToolBarHeader;+1
    j saiman.uiobjnew.PerspectiveUIEnsemble.addButtons()V+1
    j saiman.uiobjnew.PerspectiveUIEnsemble.<init>(Lsaiman/uiobjnew/MultiPerspectiveFrame;)V+21
    j saiman.mv.ModelViewPerspectiveUIEnsemble.<init>(Lsaiman/uiobjnew/MultiPerspectiveFrame;)V+2
    j saiman.uiobjnew.SoftwareOptionsUIEnsemble.<init>(Lsaiman/uiobjnew/MultiPerspectiveFrame;)V+2
    j saiman.wmaldi.MaldiSoftwareOptionsUIEnsemble.<init>(Lsaiman/uiobjnew/MultiPerspectiveFrame;)V+2
    j saiman.newuiimpl.MassSpectrumMainFrameImpl.main([Ljava/lang/String;)V+173
    v ~StubRoutines::call_stub
    V [jvm.dll+0xf0ab9]
    V [jvm.dll+0x1837d1]
    V [jvm.dll+0xf0b3d]
    V [jvm.dll+0xfa0d6]
    V [jvm.dll+0x101cde]
    C [javaw.exe+0x2155]
    C [javaw.exe+0x8614]
    C [kernel32.dll+0x51194]
    C [ntdll.dll+0x5b3f5]
    C [ntdll.dll+0x5b3c8]
    Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
    j saiman.uiobjnew.PerspectiveUIEnsemble.createPerspectiveActionToolBarHeader()Lsaiman/uiobjnew/PerspectiveActionToolBarHeader;+2
    j saiman.mv.ModelViewPerspectiveUIEnsemble.createPerspectiveActionToolBarHeader()Lsaiman/uiobjnew/PerspectiveActionToolBarHeader;+1
    j saiman.uiobjnew.PerspectiveUIEnsemble.addButtons()V+1
    j saiman.uiobjnew.PerspectiveUIEnsemble.<init>(Lsaiman/uiobjnew/MultiPerspectiveFrame;)V+21
    j saiman.mv.ModelViewPerspectiveUIEnsemble.<init>(Lsaiman/uiobjnew/MultiPerspectiveFrame;)V+2
    j saiman.uiobjnew.SoftwareOptionsUIEnsemble.<init>(Lsaiman/uiobjnew/MultiPerspectiveFrame;)V+2
    j saiman.wmaldi.MaldiSoftwareOptionsUIEnsemble.<init>(Lsaiman/uiobjnew/MultiPerspectiveFrame;)V+2
    j saiman.newuiimpl.MassSpectrumMainFrameImpl.main([Ljava/lang/String;)V+173
    v ~StubRoutines::call_stub
    --------------- P R O C E S S ---------------
    Java Threads: ( => current thread )
    0x01b05400 JavaThread "AWT-Windows" daemon [_thread_in_native, id=19680, stack(0x18560000,0x185b0000)]
    0x01b04800 JavaThread "Java2D Disposer" daemon [_thread_blocked, id=19516, stack(0x18140000,0x18190000)]
    0x01b04000 JavaThread "Low Memory Detector" daemon [_thread_blocked, id=20064, stack(0x18040000,0x18090000)]
    0x01b03c00 JavaThread "CompilerThread0" daemon [_thread_blocked, id=20276, stack(0x17ff0000,0x18040000)]
    0x01aeb000 JavaThread "JDWP Command Reader" daemon [_thread_in_native, id=16832, stack(0x17fa0000,0x17ff0000)]
    0x01aea000 JavaThread "JDWP Event Helper Thread" daemon [_thread_blocked, id=16360, stack(0x17ef0000,0x17f40000)]
    0x01ae8000 JavaThread "JDWP Transport Listener: dt_socket" daemon [_thread_blocked, id=20084, stack(0x17ea0000,0x17ef0000)]
    0x01ade400 JavaThread "Attach Listener" daemon [_thread_blocked, id=19772, stack(0x17d90000,0x17de0000)]
    0x01add400 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=20192, stack(0x17d40000,0x17d90000)]
    0x01ab2800 JavaThread "Finalizer" daemon [_thread_blocked, id=17344, stack(0x17cf0000,0x17d40000)]
    0x01aabc00 JavaThread "Reference Handler" daemon [_thread_blocked, id=19964, stack(0x17ca0000,0x17cf0000)]
    =>0x011ca000 JavaThread "main" [_thread_in_vm, id=20112, stack(0x01140000,0x01190000)]
    Other Threads:
    0x01aa7c00 VMThread [stack: 0x011d0000,0x01220000] [id=19144]
    0x01b17400 WatcherThread [stack: 0x180f0000,0x18140000] [id=12792]
    VM state:not at safepoint (normal execution)
    VM Mutex/Monitor currently owned by a thread: None
    Heap
    def new generation total 4928K, used 768K [0x03bf0000, 0x04140000, 0x09140000)
    eden space 4416K, 5% used [0x03bf0000, 0x03c30380, 0x04040000)
    from space 512K, 100% used [0x040c0000, 0x04140000, 0x04140000)
    to space 512K, 0% used [0x04040000, 0x04040000, 0x040c0000)
    tenured generation total 10944K, used 1858K [0x09140000, 0x09bf0000, 0x13bf0000)
    the space 10944K, 16% used [0x09140000, 0x09310948, 0x09310a00, 0x09bf0000)
    compacting perm gen total 12288K, used 9598K [0x13bf0000, 0x147f0000, 0x17bf0000)
    the space 12288K, 78% used [0x13bf0000, 0x1454fb70, 0x1454fc00, 0x147f0000)
    No shared spaces configured.
    Edited by: hanvyj on 07-Jun-2011 02:39
    Edited by: hanvyj on 07-Jun-2011 02:43

    I think I may have stumbled across the answer, It seems that the abstract class PerspectiveToolBar implements
    the interface with the method public Container getContainer() but does not declare it, this should be fine because the method is abstract but it crashes. When I add the method public abstract Container getContainer(); to the abstract sub-class there is no error. I'm going to try make a small compilable example to see if I can reproduce it.
    edit its actually only one of the two interface methods, and not getContainer(), but another one. If anyone is interested here is the interface:
    public interface IMassSpectrometerPassableControlContainer
         Container getContainer();
         void reloadWidgetsOnVisible(boolean visible);
    }and it works only if there is "public abstract void reloadWidgetsOnVisible(boolean visible);" in the abstract class PerspectiveToolBar implementing IMassSpectrometerPassableControlContainer.
    I tried to reproduce it, but I can't get another class to repeat the behaviour, so I don't think I can post a bug report on it. Here is my attempt anyway:
    import javax.swing.JToolBar;
    * Class     Test.java
    * Date:     7 Jun 2011
    * @author     tofuser
    public class Test extends Subclass
         public static void main(String args[])
              System.out.println("in main method");
              Test t = new Test();
              t.interfaceMethod();
         @Override
         public void interfaceMethod()
              System.out.println("interface method");
    abstract class Subclass extends JToolBar implements Interface
         private static final long serialVersionUID = 1L;
         //this line is where it breaks in my code, including it works
         //public abstract void interfaceMethod();
    interface Interface
         public abstract void interfaceMethod();
    }Edited by: hanvyj on 07-Jun-2011 03:56

  • JVM startup

    I need to develop an app thats connects to oracle db, retrieves a resultset and for each record creates or not a file on some path based on record data. This app must runs this procedure every 2 minutes. The question is: My app must starts every 2 minutes or is better the app starts on system start and sleep for 2 minutes? What criteria i would use to deffine this thing? On starting every 2 minutes, how to decrease JVM startup penalty?
    I'm using a E10K machine running Solaris 8 and Oracle8i Enterprise Edition Release 8.1.7.4.0 - 64bit Production. This machine works very loaded and there is a long delay after calling java programs.

    I welcome any responses to this question as I am not
    in design phase yet.
    I am working with an application that does some sort
    of hibernate caching when a user hits an empty cache
    for the first time. When multiple users hit the
    cache, which happens because the cache takes a couple
    minutes to load, there are major problems.
    I think if I synchronize access to the caching I may
    avoid this, but I am still apt to have a long caching
    being done for the first user.
    Does anybody know of anyway I can cache what I need to
    as the JVM starts up?
    WAS 5.0.
    Thanks.Hi there,
    I'm not 100% sure of hte environment you are in here. Are you deploying a web application in WebSphere? In that case you can use a startup class/servlet/EJB to solve this problem for you.
    Karianna

  • FP-module don't use new *.iak when changing to iak-file on runtime

    Hi folks,
    I'm using FP1001 (RS-485) communication modules with a bank of FP-AI-110
    (8 x AI) and FP-SG-140 (8 x StrainGauge) with LabVIEW 6.1.
    Since I need to change input ranges of the modules on runtime
    (autoranging feature) and there is no vi to manage this, I created a
    couple of iak-files with the FP-explorer (V3.02, build 177), where I set
    the approbiate input ranges. My application then monitors the analog
    input data of the modules and changes the used iak-file as needed to
    prevent over- and underranging.
    When changing the iak-file the current session is closed (FP-Close) and
    the next session is opened with FP-Open and Create Tag, continuing with
    FP-read.
    My application does its' job well, since I monitor the currently used
    iak-file, range and the fact that sessions get closed before opening the
    next, but the FP-modules won't restart using the new range settings,
    after the following session is started with the other iak-file. The
    modules allways keep the previous settings.
    So whats wrong?
    Btw.
    I noticed FP-Explorer also has its problems changing module- ranges,
    after loading a new iak-file.
    So I startup the FP-Explorer with a iak-file for a low range setting
    (module input range) and increase the input voltage at the module input
    just as much that a overrange occurs. Then I load another iak-file with
    higher range-settings. FP-explorer shows the higher range in its range
    column, but when monitoring the module input values, overrange is showed
    first. After restarting monitoring, the input values are showed
    correctly.
    Heres' the problem:
    Loading the previous iak-file again, the overrange should show again,
    since the input value was left at the higher value, as set before. But
    no overrange shows! FP-Explorer monitors the higher input value which
    istn't within the input range, showed in the range column.
    So FP-explorer hasn't switched down the modules range!!!
    Restarting monitoring, or reloading the iak-file doesn't change
    anything. Restarting the FP-explorer shows overrange again when starting
    to monitor values. Restarting monitoring lets the FP-explorer continue
    to monitor the higher input value, which is above the range showed in
    the range column.
    The only thing which helps all the time, is to open the devices context
    menu, then to click on "Edit this device", and click on channel
    configuration. Then a pop-up window asks which setting to use (file or
    device). If I click on file, all the settings of the current used
    iak-file are used correctly.
    Ciao,
    Rainer

    Rainer,
    The FieldPoint IAK File is used in application programs (e.g. LabVIEW, LabWindows/CVI, OPC) for channel names, handle information and scaling information. FP Open.vi launches the FieldPoint Server with the specified IAK file, and uses the information in the specified IAK file for scaling (serial modules require scaling on the computer, ethernet modules scale the data in the network module) but does not re-configure the IO modules according to the IAK file. Likewise, opening an IAK file in FieldPoint Explorer does not reconfigure the IO modules to match the IAK file. The only times that settings are synchronized between the IAK and the modules are when a)the Find Devices command is issued (config from modules loaded), b) the Channel Configuration wi
    ndow is opened (file or module config can be choosen) or c) a Snapshot command is issued (current settings of modules are stored).
    Currently, the FieldPoint Server VI's do not allow dynamic re-configuration of ranges. If you wish to dynamically reconfigure your module ranges, you will need to use the FieldPoint Optomux VI's, which are located under the RT sub-palette of FieldPoint. They are installed by default only if you have LabVIEW RT, so you may need to re-install FieldPoint Explorer (custom install) to get them. For more information on the Optomux commands, please see the FP-1000/1001 Programmers Reference Manual.
    Regards,
    Aaron

  • UNCAUGHT_EXCEPTION runtime errors when changing the PO

    Hi everyone,
    We are facing the problem which is when changing the PO short dump UNCAUGHT_EXCEPTION is occurred then it will display "The page cannot be displayed"
    I don't know what is the exactly that cause of this problem
    Anyone who facing the same problem before, pls help on this. Hope anyone can help us on this.
    Thanks,
    quare

    Hi Disha,
    I found that only this PO cannot be change. Others are ok. There is an error in ST22 which is as below:
    Runtime Errors         UNCAUGHT_EXCEPTION
    Except.                CX_BBP_PD_ABORT
    Error analysis
        An exception occurred. This exception is dealt with in more detail below
        . The exception, which is assinged to the class 'CX_BBP_PD_ABORT', was not
         caught,
        which led to a runtime error.
        The reason for this exception is:
        Übernehmen
    After further search of error there is also message that relates to this error:
    Buffer table not up to date
    Message no. BBP_PD001
    Diagnosis
    In FORM CHANGE_VERSION_MAP_ORG (function group SAPLBBP_PDCV) an inconsistent status was discovered.
    Procedure
    Start the transaction again. If the error occurs again, create an OSS message.
    To analyze the error, you can set a breakpoint in the function module 'BBP_PD_ABORT' and look at the call-up hierarchy in debugging mode.
    I wondering what is the problem. Since it occurs not for all PO but certain PO only.
    Please help.
    Thanks,
    quare

  • How to set the JVM Startup Options?

    Hi,
    I want to know how to set the JVM Startup Options...
    The idea is, I want to test how the remote clients can access an EJB that is running on a different machine... Remote client here means, I have a java client application that runs on one machine and that contacts an EJB thats running on a different machine... I posted this question in J2EE forum and I got this reply...
    If you need to access EJB components that are residing in a remote system other than the system where the application client is being developed, set the values for the Java Virtual Machine startup options:
    jvmarg value = "-Dorg.omg.CORBA.ORBInitialHost=${ORBhost}"
    jvmarg value = "-Dorg.omg.CORBA.ORBInitialPort=${ORBport}"
    Now how to set the JVM Startup Options? I know my server ORBHost Name and the ORBPort..
    Anybody to help !!!
    Thanks in advance,
    Karthik

    java -Dorg.omg.CORBA.ORBInitialHost=${ORBhost} -Dorg.omg.CORBA.ORBInitialPort=${ORBport} <the main class>
    That should do it..

  • ClassNotFoundException when using Class.forName(), thx

    in a study app, i try to use Class.forName() to load any class then get its properties (fields, methods etc. vs reflect).
    the (Frame based) app is in directory:
    c:\app\StudyApp.class
    there is a "Open class" button on the app, click the button, i use FileChooser to open any class file.
    i.e. open a class (assume it is not packaged)
    d:\dir\TheClass.class
    coding in StudyApp.java is:
    Class cls=Class.forName("TheClass");
    now a ClassNotFoundException throws when call Class.forName() above.
    it is easy to understand why throw the exception because i never tell where the class is. it is in directory
    d:\dir
    my question is: how to tell VM the directory.
    the directory d:\dir can not be applied to -classpath when run java.exe StudyApp, because the directory is random one at run-time.
    i tried to change System property (i.e. "java.class.path", 'user.dir" etc. none of them can fix the problem.
    thanks in advance for any help

    This probably does a lot more than you need:
    import java.util.*;
    import java.io.*;
    import java.util.jar.*;
    import java.lang.*;
    public class ClassFileFinder extends ClassLoader
         List cpath = new LinkedList();
         void addFile(File f) {
              if(f.isDirectory() || (f.isFile() && f.canRead() &&
                                          f.getName().endsWith(".jar")))
                   cpath.add(f);
         public byte[] classData(String className)  {
              String cname = className.replace('.', File.separatorChar) + ".class";
              Iterator it = cpath.iterator();
              while(it.hasNext()) {
                   File f = (File)it.next();
                   try {
                        if(f.isDirectory()) {
                             File cFile = new File(f, cname);
                             if(cFile.isFile()) {
                                  byte[] buf = new byte[(int)cFile.length()];
                                  InputStream in = new FileInputStream(cFile);
                                  int off  = 0, l;
                                  while((l = in.read(buf, off, buf.length - off)) > 0) {
                                       off += l;
                                       if(off >= buf.length) break;
                                  in.read(buf);
                                  in.close();
                                  return buf;
                        } else if (f.isFile()) {
                             JarFile jar = new JarFile(f);
                             JarEntry ent = jar.getJarEntry(cname);
                             if(ent != null) {
                                  byte[] buf = new byte[(int)ent.getSize()];
                                  int off = 0, l;
                                  InputStream in = jar.getInputStream(ent);
                                  while((l = in.read(buf, off, buf.length - off)) > 0) {
                                       off += l;
                                       if(off >= buf.length) break;
                                  in.close();
                                  return buf;
                   } catch (IOException e) {
              return null;          
         public Class findClass(String className) throws ClassNotFoundException{
              byte[] data = classData(className);
              if(data == null)
                   return getParent().loadClass(className);
              else
                   return defineClass(className,data,0, data.length);
    }Create an instance, Add directories and/or jar files with addFile then loadClass the class you want.

  • Failed to invoke startup or shutdown class

    In what situation I'll get the error "Failed to invoke startup/shutdown
    class" as below :
    java.lang.InstantiationException:
    dsb/eBanking/backOffice/connect/HubDevicePool
    at java.lang.Class.newInstance0(Native Method)
    at java.lang.Class.newInstance(Compiled Code)
    at weblogic.t3.srvr.StartupThread.runStartup
    (StartupThread.java:180)
    at weblogic.t3.srvr.StartupThread.doWork(Compiled Code)
    at weblogic.t3.srvr.PropertyExecuteThread.run
    (PropertyExecuteThread.java:62)
    I'm pretty sure that the class HubDevicePool has been coded (e.g.
    implement T3xxxDef interface, with either the startup() or shutdown()
    method) properly as I've another startup classes which work perfectly.
    The class has been compiled without error, but it just cannot run when I
    put it as either a startup or shutdown class for WebLogic.

    This is a very convinient feature of Weblogic startup service - if your class
    does not implement T3StartupDef it will look for (using introspection)
    public static void main(String[] args) in your startup class, and, if it is
    there it will execute it.
    Ricky Wong <[email protected]> wrote:
    It works, many thanks !
    However I still have one more question out of my head - I found that my
    startup class doesn't need to implement the T3StartupDef and it still
    works, however my shutdown class must implement the T3ShutdownDef
    (otherwise I'll get ClassCastException).
    In article <[email protected]>, [email protected] says...
    Most likely the HubDevicePool does not have a public default constructor.
    Ricky Wong <[email protected]> wrote:
    In what situation I'll get the error "Failed to invoke startup/shutdown
    class" as below :
    java.lang.InstantiationException:
    dsb/eBanking/backOffice/connect/HubDevicePool
    at java.lang.Class.newInstance0(Native Method)
    at java.lang.Class.newInstance(Compiled Code)
    at weblogic.t3.srvr.StartupThread.runStartup
    (StartupThread.java:180)
    at weblogic.t3.srvr.StartupThread.doWork(Compiled Code)
    at weblogic.t3.srvr.PropertyExecuteThread.run
    (PropertyExecuteThread.java:62)
    I'm pretty sure that the class HubDevicePool has been coded (e.g.
    implement T3xxxDef interface, with either the startup() or shutdown()
    method) properly as I've another startup classes which work perfectly.
    The class has been compiled without error, but it just cannot run when I
    put it as either a startup or shutdown class for WebLogic.Dimitri
    Dimitri

  • When to use interface and when Abstract Class?

    In a recent interview I was asked "When to use interface and when Abstract Class?" Explain with an example.
    Also in what situations a class should be made final(real time example)

    Interface is a pure contract with no implementation. Typically used to define a communication contract between two different sub-systems. Example EJB home interface. This also allows the design to change as long as the contract is met.
    Abstract class is when there exists a lot of common functionality already known and can be coded. However, a few unknowns exists (typically about data) for which abstract methods need to be defined and implemented by the sub class.
    Example: Consider a workflow engine. A great example for abstract class. The workflow process has lot of common code that is independent of the workflow type (vendor flow, contract flow, payment flow etc). However, certain decisions on the route to take will depend on value of data being submitted. So the base class will define a abstract Data getData() method and proceed assuming data will come. The implementing subclass will provide the actual logic for getting the data.
    Also see the "Template" design pattern.
    Note: To some extent the common code design drives the behavior of the abstract methods. So if the design changes then so "might" the behavior expected from the abstract methods.

  • ORA-06502 on "Help Text" region when changing pages on a tabular form

    Hello everybody,
    We are developing an application on Apex 4.1.0.00.32. This application have some pages with tabular forms and these pages uses a page zero as template. In this page zero, we have added two sidebar regions: a list region to navigate on the application and a help text to describe how to use our application.
    The problem occurs when the tabular split the records into pages (since it has more records that it can show on a single page). When the user clicks to change to another page, Apex raises an ORA-06502: PL/SQL: numeric or value error as described below:
    Erro ao renderizar a região "Ajuda". ORA-06502: PL/SQL: erro: erro de conversão de caractere em número numérico ou de valor
    Informações Técnicas (visível somente para desenvolvedores)
    is_internal_error: true
    apex_error_code: APEX.REGION.UNHANDLED_ERROR
    ora_sqlcode: -6502
    ora_sqlerrm: ORA-06502: PL/SQL: erro: erro de conversão de caractere em número numérico ou de valor
    component.type: APEX_APPLICATION_PAGE_REGIONS
    component.id: 2
    component.name: Ajuda
    error_backtrace:
    ORA-06512: em "APEX_040100.WWV_FLOW_DISP_PAGE_PLUGS", line 3654
    ORA-06512: em "APEX_040100.WWV_FLOW_DISP_PAGE_PLUGS", line 4204
    Obs: Our database is in Brazilian Portuguese, so I guess it will be hard for some people to understand the first two lines! :)
    We have tried to change the pagination style of the tabular form and change the region model of the help text but the problem still happens.
    Does anyone an ideia about what this may be?
    Thanks in advance!

    I am getting the exact same message, to the line number, also in APEX 4.1.0.0.32.
    Occurs when changing pages in a classic report, Standard region template, select list pagination, when selecting a different pagination set.
    In English:
    Error during rendering of region "Matched Participants Help & Hints".
    ORA-06502: PL/SQL: numeric or value error: character to number conversion error
    Technical Info (only visible for developers)
    is_internal_error: true
    apex_error_code: APEX.REGION.UNHANDLED_ERROR
    ora_sqlcode: -6502
    ora_sqlerrm: ORA-06502: PL/SQL: numeric or value error: character to number conversion error
    component.type: APEX_APPLICATION_PAGE_REGIONS
    component.id: 2
    component.name: <strong>Matched Participants</strong> Help & Hints
    error_backtrace:
    ORA-06512: at "APEX_040100.WWV_FLOW_DISP_PAGE_PLUGS", line 3654
    ORA-06512: at "APEX_040100.WWV_FLOW_DISP_PAGE_PLUGS", line 4204
    There are no conditions on the region, and no date string within the Help text. Some HTML <strong> tags, that's it.
    The Help region renders fine the first time.
    The Debug info does not help any:
    3.798360.00062Computation point: After Box Body4
    0
    3.798990.00081Processes - point: AFTER_BOX_BODY4
    0
    3.799790.00068Region: <strong>Matched Participants</strong> Help & Hints4
    0
    3.800470.00213Region rendered dynamically because request was not null4
    0
    3.802590.00096Add error onto error stack4
    0
    3.803550.00084...Error data:4
    0
    3.804400.00084......message: Error during rendering of region "<strong>Matched Participants</strong> Help & Hints".4
    0
    3.805240.00084......additional_info: ORA-06502: PL/SQL: numeric or value error: character to number conversion error4
    0
    3.806080.00081......display_location: ON_ERROR_PAGE4
    0
    3.806890.00081......is_internal_error: true4
    0
    3.807700.00084......apex_error_code: APEX.REGION.UNHANDLED_ERROR4
    0
    3.808540.00082......ora_sqlcode: -65024
    0
    3.809350.00234......ora_sqlerrm: ORA-06502: PL/SQL: numeric or value error: character to number conversion error4
    0
    3.811700.00082......error_backtrace: ORA-06512: at "APEX_040100.WWV_FLOW_DISP_PAGE_PLUGS", line 3654 ORA-06512: at "APEX_040100.WWV_FLOW_DISP_PAGE_PLUGS", line 4204 4
    0
    3.812510.00081......component.type: APEX_APPLICATION_PAGE_REGIONS4
    0
    3.813310.00110......component.id: 24
    0
    3.814420.00099......component.name: <strong>Matched Participants</strong> Help & Hints4
    0
    3.815400.00076...Show Error on Error Page4
    0
    3.816160.00344......Performing rollback4
    0
    3.819610.00225Processes - point: AFTER_ERROR_HEADER4
    0
    3.821850.00268Processes - point: BEFORE_ERROR_FOOTER4
    0
    3.82453-End Page Rendering
    Any thoughts on where to poke around for this one?
    Thanks - Karen

  • How to update the table when change list item in classic report

    hi ,
    i worked with apex 4.2 and i create normal classic report with one select list(named loved)Column ,now i want to update table when user change the list with new value ,i can't create dynamic action to do this,i create check box with primary key and loop for check item to update the table but i can't get the value of list item. and for more speed the user want to do this when change the list value.
    my question
    1- how to do this by javascript and get the value from list item and update the table with new value
    2- is i must use API to create list item so i can get the value of item in report or what.
    Thanks
    Ahmed

    I coded the following to give you direction:
    1. In the "Element Attributes" section of the DEPTNO column, I call a javascript function as:
    onchange = "javascript:updateTable(this);"2. I wrote a simple javascript function that shows an alert when the user changes the select list as:
    <script language="JavaScript" type="text/javascript">
    function updateTable(pThis)
        var vRow = pThis.id.substr(pThis.id.indexOf('_')+1);
        alert('Row# - '+ vRow + ' has the value - ' + pThis.value);
    </script>Now, you can call a AJAX on-demand process inside the javascript function to update the database value.

  • How do I output the smoothest video when changing or mixing frame rates from the original footage?

    I have been experimenting with various Media Encoder settings, and wondered if there was anything else I can try to get the smoothest video output possible, especially when changing frame rate and possibly resolution.  For clarification, let me start from the beginning and explain what I'm doing and what I've tried so far.  I'll try to be as brief as possible, but if I do go into too much detail, I apologize. 
    My original footage is AVCHD 1080p - 60fps.  (my camera only does 60fps...specifically 59.94fps)  We're not talking interlaced video here, I'm staying away from that.  This is definitely full frame, progressive video at 60 frames (not fields) per second.  My output will ultimately be for the web.  I have been keeping my output codec (H.264) and bit-rate (VBR 2-pass, relatively high-bitrate) consistent, and have been trying numerous output options and even sequence settings to see what would yield the best results.  I am using Premiere Pro CS5.5 along with Media Encoder.  Here's what I've done and the results I've observed:
    1.  I created a sequence with 1080p - 59.94fps settings to match my original footage.  I then output both 1080p and 720p versions at 59.94fps, and at 29.97fps.  The 59.94fps output files looked absolutely great, as would be expected.  Extremely smooth.  The 29.97fps output files were generally smooth, but not near as smooth as the 59.94fps.  This is expected since it's half the frame rate as my original footage.  However, my question is this:  What exactly is Media Encoder doing when "down converting" from 60p to 30p?  From a technical stand point, is it dropping every other frame?  I'm just curious to understand exactly what it does.  I tried the Frame Blending option as well, and that only yielded a bit more blur to the images which wasn't desirable for any of the output files. 
    2.  Just to see what would happen, I created a sequence with 1080p - 29.97 settings.  I then output both 1080p and 720p versions at 29.97fps.  The video was much more choppy in these cases, even with Frame Blending on.  Now, I know not matching my sequence settings with my original media isn't ideal, but I again just want to understand why this yields less smooth video than the 29.97fps options above.  Why does cutting the sequence settings frame rate in half from the original, then outputting the same frame rate as the sequence yield video that is not as smooth?
    3.  Next, I wanted to try mixing frame rates to see how Premiere and Media Encoder handled the footage and output files.  Premiere handled it great, no issues there.  However, I had some interesting things happen when I output the files.  Here's what I did:  I created a sequence with 1080p - 59.94fps to match my original footage.  Then I took the same exact footage that was in my sequence, copied it in my project panel and interpreted it at both 23.976 and 29.97 fps, yielding slow motion video.  The slow motion video looked great in Premiere, so I went ahead and just added it to my sequences, along with the original 59.94 footage.  I also created separate sequences for the 29.97 and 23.976 footage respectively, each with matching sequence settings, then added a nested sequence to another original footage sequence (with 59.94fps sequence settings) to see which yielded the best results.  Basically, I'm trying to output 59.94fps that match my original footage, but also throw in some slow motion footage at different framerates.  I'll explain my results in a moment as they are a bit convoluted, however, here is my question:  When mixing frame rates and trying to output the smoothest video, am I going about this the right way?  I would assume you would use your sequence settings that match the original footage (which is what the majority of the footage will be), then bring in a nested sequence for the slow motion (as oppose to just dropping the slow motion video directly into my main sequence), and then output to the same frame rate of the majority of the footage, in this case 59.94fps. Is there a better workflow for this?
    The results to #3 above were as follows.  Initially, it looked like it didn't matter if I nested the slow motion sequence into my main sequence, or simply dropped the actual slow motion video into my original 59.94fps sequence.  It seemed to produce smooth results either way.  Frame Blending blurred the video a bit, but didn't seem to make much difference, and quite honestly I like the footage without Frame Blending in general.  However, when I closed down Premiere, and opened the output files later (opening in Quicktime), the footage looked choppy.  In fact, it would go from choppy to smooth and back, almost like it had an irregular cadence (don't know if I'm using "cadence" in the right context here).  I would then open up Premiere again, import the output footage into my project panel, and play the footage in Premiere, and it would play back smooth again. Is this a Quicktime issue?  I was playing 1080p 59.94fps files when this happened, so maybe it's just because it's a large file.  Doesn't seem to have issues with the 720p files I created.  But it sure threw me off with my testing because I then started second guessing the settings I was using.  My iMac is the latest 2011 model with plenty of RAM, so I wouldn't think it's the computer.  Thoughts?
    4.  Next, I noticed on ALL my output files (again, using the H.264 codec from Media Encoder) that the color of my video seemed to flatten quite a bit.  It seems that the original footage has more contrast and saturation than the output files.  I figured maybe this was just how it was, but when I re-imported the output files back into Premiere, they looked IDENTICAL to the original footage.  And in Media Encoder's Source/Output windows, I don't see any difference there either. Is Quicktime again the culprit here, doing some odd things to the color of my videos?
    5.  Regarding Frame Blending, when is the best situation to enable this option in Media Encoder?  I've read it is when mixing frame rates, but I honestly didn't see too much of a change except for a bit more blur, which I didn't care for.
    6.  Lastly, my conclusion is that 60fps yields the smoothest video, which is an obvious conclusion.  However, I know that 60fps isn't the best or easiet frame rate for web delivery.  It seems 30p is more the standard.  Are there any integrated web players that would play 60fps?  Can you get 60fps video on YouTube/Vimeo?  If yes to any of these questions, can they do 720p and 1080p at 60fps? 
    Those are all my questions.  I hope I am clear enough without being overly wordy and hopefully I didn't put too many questions into one post.  Thanks in advance for any insight, I really appreciate it.

    Did you ever figure out which output worked the best? I have the same original footage; trying to determine the best output settings to make a dvd for tv.
    thanks!

  • Error message when changing from portrait to landscape when printing

    I receive an error message when changing from portrait to landscape when trying to print.  How do I resolve this issue?

    Hi hillclimbing,
    Can you please let me know the exact error message you see as that would be helpful.
    Does this occur with all the pdf files.
    What OS and Acrobat version are you using?
    Regards,
    Rave

  • Have installed cc2014, menues are not fully visible. when changing font, system (all new sony vaio, win 8.1) crashes completely.

    have installed cc2014, menues are not fully visible. when changing font, system (all new sony vaio, win 8.1) crashes completely

    Dear Zak,
    thank you very much! Your information solved the problem immediately!
    Best regards,
    Philipp Frank
    New website
    www.philippfrank.at<http://www.philippfrank.at>
    Dipl Ing Philipp Frank
    1010 Wien
    Jakobergasse 4/14
    +43 1 513 22 83 19
    +43 650 250 5000
    [email protected]<mailto:[email protected]>
    www.philippfrank.at
    Von: Zak Williamson (Adobe)
    Gesendet: Montag, 23. Juni 2014 20:40
    An: Dipl Ing Philipp Frank
    Betreff:  have installed cc2014, menues are not fully visible. when changing font, system (all new sony vaio, win 8.1) crashes completely.
    have installed cc2014, menues are not fully visible. when changing font, system (all new sony vaio, win 8.1) crashes completely.
    created by Zak Williamson (Adobe)<https://forums.adobe.com/people/ZakWilliamson%28Adobe%29> in Help with using Adobe Muse CC - View the full discussion<https://forums.adobe.com/message/6488371#6488371>

  • When reflow text; How to change paragraph automatically when changing frame

    Hi
    Im new to indesign scripts, but thought that this maybe was the right forum to ask the following question. (Im using Adobe Indesign CS.5 )
    Im currently trying to import a file (word file / excel both is possible) into an indesign book and formatting the text automatically!
    My question is: How is it possible to reflow text into frames and when changing frame it changes paragraph?
    I have already figured out how to reflow the text, and actually also managed to relow text into the frames and change paragraph style. I know how to use the keep option, and by this change the paragraph style when e.g. changing frame break/page break etc.  (but if the content being flowed-in is not tagged with style names then I cannot figure out how to do it)
    The document and its content I whish to import do not have any tagged paragraphs!
    If any of you have a hint, I would be more than happy to hear from you

    My question is: How is it possible to reflow text into frames and when changing frame it changes paragraph?
    This question is not gramatically correct and I cannot understand what you are trying to ask.

Maybe you are looking for