OraFormsFaces issue tracker :: OraFormsFaces issue tracker ::OraFormsFaces: Recently opened tasks http://tracker.commit-consulting.com/ 2010-09-06T06:03:09Z FS#110: Detect Forms 11 modules without OraFormsFaces objects 2010-09-06T06:03:09Z 2010-09-06T06:02:51Z
When using Oracle Forms 10.1.x, OraFormsFaces detects if a Form starts without a CommunicatorBean and throws an exception. When using Forms 11 this detection does not exist as no CommunicatorBeans are used. We should find another way to detect Forms being opened without the OraFormsFaces Object Group as these Forms will cause the applet recycle and other JavaScript based functions not to work.
Wilfred van der Deijl http://tracker.commit-consulting.com/:110
FS#109: Applet recycle is aborted when using CALL_FORM(NO_HIDE) 2010-08-27T03:45:35Z 2010-08-25T14:58:37Z
Situation: a form has a button with CALL_FORM(NO_HIDE) to call another Form, user then navigates away from the page and returns to an OraFormsFaces page causing the applet to be recycled.

Since the first form is also visible it appears that the windowActivated event for this calling form is called before the windowRemoved event is called for all windows of the called form. This makes OraFormsFaces believe the exit-form has failed and recycling is aborted.

See private forum thread for more info: http://forum.commit-consulting.com/viewtopic.php?f=7&t=164

Relevant snippet of console:

network: Connecting http://localhost:8889/forms/lservlet;jsessionid=0e211e535032ac0229ac845e1306ce62b92f001981df6bfac9ffcaae350de0d3 with proxy=DIRECT
OraFormsFaces0: 2010-08-20T14:37:25.593-0400 FormTracker: removing window "76" from form "form2" [Forms-StreamMessageReader]
OraFormsFaces0: 2010-08-20T14:37:25.593-0400 FormTracker: removing window "80" from form "form2" [Forms-StreamMessageReader]
OraFormsFaces0: 2010-08-20T14:37:25.593-0400 FormTracker: removing now empty form "form2" [Forms-StreamMessageReader]
OraFormsFaces0: 2010-08-20T14:37:25.593-0400 removing CommunicatorBean com.commit_consulting.oraformsfaces.extension.CommunicatorBean[CommunicatorBean9,0,0,1x1,invalid,layout=java.awt.BorderLayout, oracle.forms.ui.OracleBorderPainter@fa54fe] [AWT-EventQueue-2]
OraFormsFaces0: 2010-08-20T14:37:25.593-0400 removing bean CommunicatorBean9, form form2 from the registry [AWT-EventQueue-2]
OraFormsFaces0: 2010-08-20T14:37:25.593-0400 before removing window oracle.forms.ui.ExtendedFrame ExtendedFrame7 OraFormsFaces [AWT-EventQueue-2]
OraFormsFaces0: 2010-08-20T14:37:25.593-0400 RecycleManager: window ExtendedFrame5/MAIN_WINDOW activated during applet recycle [AWT-EventQueue-2]
java.lang.IllegalStateException: Form did not close in response to when-applet-activated event
at com.commit_consulting.oraformsfaces.extension.RecycleManager.windowActivated(RecycleManager.java:327)
at com.commit_consulting.oraformsfaces.extension.RecycleManager$5.propertyChange(RecycleManager.java:288)
at java.beans.PropertyChangeSupport.firePropertyChange(Unknown Source)
at java.beans.PropertyChangeSupport.firePropertyChange(Unknown Source)
at oracle.ewt.lwAWT.lwWindow.LWWindow.fireBooleanPropertyChanged(Unknown Source)
at oracle.ewt.lwAWT.lwWindow.LWWindow.setActive(Unknown Source)
at oracle.ewt.lwAWT.lwWindow.laf.BaseWindowManager.transferActivationForward(Unknown Source)
at oracle.ewt.lwAWT.lwWindow.laf.BaseWindowManager.windowRemoved(Unknown Source)
at oracle.ewt.lwAWT.lwWindow.DesktopContainer.processDesktopEvent(Unknown Source)
at oracle.ewt.lwAWT.lwWindow.DesktopContainer.processEventImpl(Unknown Source)
at oracle.ewt.lwAWT.LWComponent.redispatchEvent(Unknown Source)
at oracle.ewt.lwAWT.LWComponent.processEvent(Unknown Source)
at oracle.ewt.lwAWT.lwWindow.DesktopContainer.removeWindow(Unknown Source)
at oracle.ewt.lwAWT.lwWindow.LWWindow.close(Unknown Source)
at oracle.ewt.lwAWT.lwWindow.LWWindow.dispose(Unknown Source)
at oracle.forms.handler.FormWindow.onDestroy(Unknown Source)
at oracle.forms.engine.Runform.onDestroyHandler(Unknown Source)
at oracle.forms.engine.Runform.processMessage(Unknown Source)
at oracle.forms.engine.Runform.processSet(Unknown Source)
at oracle.forms.engine.Runform.onMessageReal(Unknown Source)
at oracle.forms.engine.Runform.onMessage(Unknown Source)
at oracle.forms.handler.JavaContainer.customActionPerformed(Unknown Source)
at oracle.forms.ui.BeanManager.dispatchCustomEvent(Unknown Source)
at oracle.forms.ui.VBean.dispatchCustomEvent(Unknown Source)
at com.commit_consulting.oraformsfaces.extension.CommunicatorBean.sendMessageToForms(CommunicatorBean.java:250)
at com.commit_consulting.oraformsfaces.extension.FormsAppletExtendedJS.raiseEvent(FormsAppletExtendedJS.java:63)
at com.commit_consulting.oraformsfaces.extension.FormsAppletExtendedJS.raiseEvent(FormsAppletExtendedJS.java:75)
at com.commit_consulting.oraformsfaces.extension.RecycleManager$4.run(RecycleManager.java:231)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
OraFormsFaces0: 2010-08-20T14:37:25.609-0400 RecycleManager: aborting recycling since no more forms should close [AWT-EventQueue-2]
OraFormsFaces0: 2010-08-20T14:37:25.609-0400 before removing window oracle.forms.ui.ExtendedFrame ExtendedFrame8 MAIN_WINDOW [AWT-EventQueue-2]
OraFormsFaces0: 2010-08-20T14:37:25.609-0400 setting bean property "ENABLED" to "true" [AWT-EventQueue-2]
network: Connecting http://localhost:8889/forms/lservlet;jsessionid=0e211e535032ac0229ac845e1306ce62b92f001981df6bfac9ffcaae350de0d3 with proxy=DIRECT
Wilfred van der Deijl http://tracker.commit-consulting.com/:109
FS#108: Ignore ie-delay when using new Sun JRE 2010-05-18T06:06:21Z 2010-02-26T02:28:08Z
Normally, OraFormsFaces uses a delay before injecting the applet HTML into the page to prevent hanging of Internet Explorer. This seems to be fixed with the next-gen java plugin architecture. We would need to detect if this new architecture is being used. If so, we should ignore the delay and inject the HTML directly.
Wilfred van der Deijl http://tracker.commit-consulting.com/:108
FS#107: Allow adding of object/arrays to JSON objects/arrays 2010-05-18T13:11:47Z 2010-01-04T00:48:04Z
The PL/SQL JSON libraries currently do not support adding arrays/objects to other arrays/objects other than through stringification and parsing. We need to enhance the procedures/functions in offJSON to also support merging object/array contexts.
Wilfred van der Deijl http://tracker.commit-consulting.com/:107
FS#106: Use jQuery to inject Forms Servlet JavaScript 2010-01-03T03:56:15Z 2010-01-03T03:56:15Z
We could use the jQuery object included with oraformsfaces.js to load the javascript from the Forms Servlet. This also allows us to detect better if the script loading succeeded (see jQuery.ajax).

We only need to make 100% sure that the oraformsfaces.js script loaded before we execute the JavaScript that uses it.

This should also remove the challenge we currently have with oraformsfaces.js and FormsServler.js loading in parallel not guaranteeing which one is loaded first.
Wilfred van der Deijl http://tracker.commit-consulting.com/:106
FS#105: Split into core J2EE and ADF 2010-01-03T03:46:43Z 2010-01-03T03:46:43Z
See if we can split OraFormsFaces into two libraries: one which is core J2EE and an extended one whihc is dependent on ADF.

We should split the JDev extensions itself to remove dependencies on ADF Binding layer from core J2EE libs.
We also need to split the JSF components, but hopefully we can find a way to make the ADF version an extension of the J2EE version to prevent a lot of duplicate code. The Java classes could be a simple subclass, but config files like TLD and faces-config.xml might prove more difficult. Perhaps we should have our own meta-data which supports subclassing/extending and then generate the TLD and XML from there in the build process
Wilfred van der Deijl http://tracker.commit-consulting.com/:105
FS#104: Provide way to add supporting JavaScript on page without <off:form> 2010-01-03T03:27:52Z 2010-01-03T03:27:52Z
We should see if there is an easy way to add the supporting JavaScript to a page even if no <off:form> component is used. This can help developers ensure the JSON, logging, and jQuery stuff is available even on pages where no form is used.
Wilfred van der Deijl http://tracker.commit-consulting.com/:104
FS#103: Forms without credentials fails to remove loading image 2010-05-18T06:05:52Z 2009-09-28T00:00:13Z
When no credentials are specified in the formsweb.cfg, Forms will just prompt for credentials. With the new startup/shutdown detection code in OraFormsFaces v3.x it no longer seems to detect this during startup and the loading image stays up.

Also see http://forum.commit-consulting.com/viewtopic.php?f=2&t=134
Wilfred van der Deijl http://tracker.commit-consulting.com/:103
FS#102: Document or remove dependency on Apache Commons Logging 2009-05-05T03:28:32Z 2009-05-05T03:28:32Z
OraFormsFaces uses Apache Commons Logging. In JDev 10g this never caused a problem since the core JSF components also used Commons Logging. With JDev 11 this is no longer the case and the developer has to manually add Commons Logging to the project classpath. If you do not, the visual editor in JDev breaks.

We need to either remove the dependency on Commons Logging (and go for JDK logging) or properly document the dependency on Commons Logging
Wilfred van der Deijl http://tracker.commit-consulting.com/:102
FS#101: Make dynamic SSO resource creation work or document why it is not 2009-04-02T12:59:21Z 2009-04-02T12:59:21Z
Oracle Forms supports dynamic resource creation in an SSO environment. Whenever a user does not have a valid resource, the user is forwarded to an OID-DAS page to have the user create a resource manually. This fails when using OraFormsFaces as the HTTP response from the Forms server is interpreted as a JavaScript. The default create resource page is obviously not a JavaScript.

Perhaps we can replace the dynamic resource creation page with a custom JavaScript that gives a similar user experience with OraFormsFaces. If that's not possible we should at least clearly communicate to disable dynamic resource creation and explain why this is.

The same story applies for the error-URL when dynamic resource creation is not allowed (should give a relevant piece of JavaScript) and the cancel-URL when the user decides to bail out of creating a resource.

We also need to make sure this is all compatible with expiring database passwords or document why this is not possible and advice people how to work around this
Wilfred van der Deijl http://tracker.commit-consulting.com/:101