[2 Bugs] BC4J/JClient 9.0.3 JComboBox + LOV Binding

I may have stumbled across some other bugs.. Here's how you may reproduce them:
2 Tables (both are filled with proper values, PK's and FK's are set):
EMP(ID: NUMBER, DESC: VARCHAR2, DEPT_ID: NUMBER)
DEPT(ID: NUMBER, DESC: VARCHAR2)
All appropriate ViewObjects and stuff have been generated and are in place.
I have a JClient Panel and on it sits a JComboBox.
The model of the JComboBox is set through the property editor to a
JClient LOV Binding which looks as follows: DEPT.ID goes into EMP.DEPT_ID
and the displayed LOV attribute is: DEPT.DESC
Now, when I run the program, I attempt to select a new value from the JComboBox.
This will succeed, but as soon as the JComboBox looses focus, I get this exception:
oracle.jbo.domain.DataCreationException: JBO-25009: Cannot create an object of type:
oracle.jbo.domain.Number with value: <insert displayed value in JComboBox here>When I add DEPT.ID to the displayed LOV attributes, no exception is thrown.
That's because the String "(some number) (spaces) (some string)" will in
fact be parsed to a valid number.
However, because of this measure, only the DEPT.ID will be shown in the JComboBox
when it's in its 'closed state'.
This leads me to the second bug. When selecting multiple attributes to be
displayed into the JComboBox, the order in which I put them doesn't seem to
'stick'. Everytime the ID attribute is first and the rest follows in the same
order in which the table's columns have been defined. Re-ordering them
manually in the property editor, doesn't seem to help. The order will be
forgotten after I close and re-open the property editor.
The first bug doesn't seem to have any real negative effect. The new value
is stored nonetheless; after committing and restarting the application,
all new values are still available.
(Stack Trace follows)
Hope This Helps
Arno

As promised, here's the stack trace. The 'offending' value is "Rubriek".
Exception occurred during event dispatching:
oracle.jbo.domain.DataCreationException: JBO-25009: Cannot create an object of type:oracle.jbo.domain.Number with value:Rubriek
  java.lang.Object oracle.jbo.domain.TypeFactory.get(java.lang.Class, java.lang.Class, java.lang.Object)
    TypeFactory.java:713
  java.lang.Object oracle.jbo.domain.TypeFactory.getInstance(java.lang.Class, java.lang.Object)
    TypeFactory.java:80
  int oracle.jbo.uicli.binding.JUCtrlListBinding.findListIndex(java.lang.Object)
    JUCtrlListBinding.java:567
  java.lang.Object oracle.jbo.uicli.binding.JUCtrlListBinding.findMatchingListValue(java.lang.Object)
    JUCtrlListBinding.java:425
  java.lang.Object oracle.jbo.uicli.controls.JUMultiAttrListEditor.getItem()
    JUMultiAttrListEditor.java:65
  void javax.swing.plaf.basic.BasicComboBoxUI$EditorFocusListener.focusLost(java.awt.event.FocusEvent)
    BasicComboBoxUI.java:1394
  void java.awt.AWTEventMulticaster.focusLost(java.awt.event.FocusEvent)
    AWTEventMulticaster.java:171
  void java.awt.Component.processFocusEvent(java.awt.event.FocusEvent)
    Component.java:3642
  void javax.swing.JComponent.processFocusEvent(java.awt.event.FocusEvent)
    JComponent.java:1980
  void java.awt.Component.processEvent(java.awt.AWTEvent)
    Component.java:3535
  void java.awt.Container.processEvent(java.awt.AWTEvent)
    Container.java:1164
  void java.awt.Component.dispatchEventImpl(java.awt.AWTEvent)
    Component.java:2593
  void java.awt.Container.dispatchEventImpl(java.awt.AWTEvent)
    Container.java:1213
  void java.awt.Component.dispatchEvent(java.awt.AWTEvent)
    Component.java:2497
  boolean java.awt.LightweightDispatcher.setFocusRequest(java.awt.Component)
    Container.java:2076
  void java.awt.Container.proxyRequestFocus(java.awt.Component)
    Container.java:1335
  void java.awt.Container.proxyRequestFocus(java.awt.Component)
    Container.java:1330
  void java.awt.Container.proxyRequestFocus(java.awt.Component)
    Container.java:1330
  void java.awt.Container.proxyRequestFocus(java.awt.Component)
    Container.java:1330
  void java.awt.Container.proxyRequestFocus(java.awt.Component)
    Container.java:1330
  void java.awt.Container.proxyRequestFocus(java.awt.Component)
    Container.java:1330
  void java.awt.Container.proxyRequestFocus(java.awt.Component)
    Container.java:1330
  void java.awt.Container.proxyRequestFocus(java.awt.Component)
    Container.java:1330
  void java.awt.Container.proxyRequestFocus(java.awt.Component)
    Container.java:1330
  void java.awt.Container.proxyRequestFocus(java.awt.Component)
    Container.java:1330
  void java.awt.Component.requestFocus()
    Component.java:4174
  void javax.swing.JComponent.grabFocus()
    JComponent.java:915
  void javax.swing.JComponent.requestFocus()
    JComponent.java:897
  void javax.swing.text.DefaultCaret.mousePressed(java.awt.event.MouseEvent)
    DefaultCaret.java:315
  void java.awt.AWTEventMulticaster.mousePressed(java.awt.event.MouseEvent)
    AWTEventMulticaster.java:221
  void java.awt.AWTEventMulticaster.mousePressed(java.awt.event.MouseEvent)
    AWTEventMulticaster.java:220
  void java.awt.Component.processMouseEvent(java.awt.event.MouseEvent)
    Component.java:3712
  void java.awt.Component.processEvent(java.awt.AWTEvent)
    Component.java:3544
  void java.awt.Container.processEvent(java.awt.AWTEvent)
    Container.java:1164
  void java.awt.Component.dispatchEventImpl(java.awt.AWTEvent)
    Component.java:2593
  void java.awt.Container.dispatchEventImpl(java.awt.AWTEvent)
    Container.java:1213
  void java.awt.Component.dispatchEvent(java.awt.AWTEvent)
    Component.java:2497
  void java.awt.LightweightDispatcher.retargetMouseEvent(java.awt.Component, int, java.awt.event.MouseEvent)
    Container.java:2451
  boolean java.awt.LightweightDispatcher.processMouseEvent(java.awt.event.MouseEvent)
    Container.java:2210
  boolean java.awt.LightweightDispatcher.dispatchEvent(java.awt.AWTEvent)
    Container.java:2125
  void java.awt.Container.dispatchEventImpl(java.awt.AWTEvent)
    Container.java:1200
  void java.awt.Window.dispatchEventImpl(java.awt.AWTEvent)
    Window.java:922
  void java.awt.Component.dispatchEvent(java.awt.AWTEvent)
    Component.java:2497
  void java.awt.EventQueue.dispatchEvent(java.awt.AWTEvent)
    EventQueue.java:339
  boolean java.awt.EventDispatchThread.pumpOneEventForHierarchy(java.awt.Component)
    EventDispatchThread.java:131
  void java.awt.EventDispatchThread.pumpEventsForHierarchy(java.awt.Conditional, java.awt.Component)
    EventDispatchThread.java:98
  void java.awt.EventDispatchThread.pumpEvents(java.awt.Conditional)
    EventDispatchThread.java:93
  void java.awt.EventDispatchThread.run()
    EventDispatchThread.java:85
## Detail 0 ##
java.lang.NumberFormatException: k
  int java.lang.Integer.parseInt(java.lang.String, int)
    Integer.java:414
  int java.lang.Integer.parseInt(java.lang.String)
    Integer.java:463
  void java.math.BigDecimal.<init>(java.lang.String)
    BigDecimal.java:149
  void oracle.jbo.domain.Number.<init>(java.lang.String)
    Number.java:258
  java.lang.Object java.lang.reflect.Constructor.newInstance(java.lang.Object[])
    native code
  java.lang.Object oracle.jbo.domain.TypeConvMapEntry.convert(java.lang.Class, java.lang.Class, java.lang.Object)
    TypeConvMapEntry.java:66
  java.lang.Object oracle.jbo.domain.TypeFactory.get(java.lang.Class, java.lang.Class, java.lang.Object)
    TypeFactory.java:681
  java.lang.Object oracle.jbo.domain.TypeFactory.getInstance(java.lang.Class, java.lang.Object)
    TypeFactory.java:80
  int oracle.jbo.uicli.binding.JUCtrlListBinding.findListIndex(java.lang.Object)
    JUCtrlListBinding.java:567
  java.lang.Object oracle.jbo.uicli.binding.JUCtrlListBinding.findMatchingListValue(java.lang.Object)
    JUCtrlListBinding.java:425
  java.lang.Object oracle.jbo.uicli.controls.JUMultiAttrListEditor.getItem()
    JUMultiAttrListEditor.java:65
  void javax.swing.plaf.basic.BasicComboBoxUI$EditorFocusListener.focusLost(java.awt.event.FocusEvent)
    BasicComboBoxUI.java:1394
  void java.awt.AWTEventMulticaster.focusLost(java.awt.event.FocusEvent)
    AWTEventMulticaster.java:171
  void java.awt.Component.processFocusEvent(java.awt.event.FocusEvent)
    Component.java:3642
  void javax.swing.JComponent.processFocusEvent(java.awt.event.FocusEvent)
    JComponent.java:1980
  void java.awt.Component.processEvent(java.awt.AWTEvent)
    Component.java:3535
  void java.awt.Container.processEvent(java.awt.AWTEvent)
    Container.java:1164
  void java.awt.Component.dispatchEventImpl(java.awt.AWTEvent)
    Component.java:2593
  void java.awt.Container.dispatchEventImpl(java.awt.AWTEvent)
    Container.java:1213
  void java.awt.Component.dispatchEvent(java.awt.AWTEvent)
    Component.java:2497
  boolean java.awt.LightweightDispatcher.setFocusRequest(java.awt.Component)
    Container.java:2076
  void java.awt.Container.proxyRequestFocus(java.awt.Component)
    Container.java:1335
  void java.awt.Container.proxyRequestFocus(java.awt.Component)
    Container.java:1330
  void java.awt.Container.proxyRequestFocus(java.awt.Component)
    Container.java:1330
  void java.awt.Container.proxyRequestFocus(java.awt.Component)
    Container.java:1330
  void java.awt.Container.proxyRequestFocus(java.awt.Component)
    Container.java:1330
  void java.awt.Container.proxyRequestFocus(java.awt.Component)
    Container.java:1330
  void java.awt.Container.proxyRequestFocus(java.awt.Component)
    Container.java:1330
  void java.awt.Container.proxyRequestFocus(java.awt.Component)
    Container.java:1330
  void java.awt.Container.proxyRequestFocus(java.awt.Component)
    Container.java:1330
  void java.awt.Container.proxyRequestFocus(java.awt.Component)
    Container.java:1330
  void java.awt.Component.requestFocus()
    Component.java:4174
  void javax.swing.JComponent.grabFocus()
    JComponent.java:915
  void javax.swing.JComponent.requestFocus()
    JComponent.java:897
  void javax.swing.text.DefaultCaret.mousePressed(java.awt.event.MouseEvent)
    DefaultCaret.java:315
  void java.awt.AWTEventMulticaster.mousePressed(java.awt.event.MouseEvent)
    AWTEventMulticaster.java:221
  void java.awt.AWTEventMulticaster.mousePressed(java.awt.event.MouseEvent)
    AWTEventMulticaster.java:220
  void java.awt.Component.processMouseEvent(java.awt.event.MouseEvent)
    Component.java:3712
  void java.awt.Component.processEvent(java.awt.AWTEvent)
    Component.java:3544
  void java.awt.Container.processEvent(java.awt.AWTEvent)
    Container.java:1164
  void java.awt.Component.dispatchEventImpl(java.awt.AWTEvent)
    Component.java:2593
  void java.awt.Container.dispatchEventImpl(java.awt.AWTEvent)
    Container.java:1213
  void java.awt.Component.dispatchEvent(java.awt.AWTEvent)
    Component.java:2497
  void java.awt.LightweightDispatcher.retargetMouseEvent(java.awt.Component, int, java.awt.event.MouseEvent)
    Container.java:2451
  boolean java.awt.LightweightDispatcher.processMouseEvent(java.awt.event.MouseEvent)
    Container.java:2210
  boolean java.awt.LightweightDispatcher.dispatchEvent(java.awt.AWTEvent)
    Container.java:2125
  void java.awt.Container.dispatchEventImpl(java.awt.AWTEvent)
    Container.java:1200
  void java.awt.Window.dispatchEventImpl(java.awt.AWTEvent)
    Window.java:922
  void java.awt.Component.dispatchEvent(java.awt.AWTEvent)
    Component.java:2497
  void java.awt.EventQueue.dispatchEvent(java.awt.AWTEvent)
    EventQueue.java:339
  boolean java.awt.EventDispatchThread.pumpOneEventForHierarchy(java.awt.Component)
    EventDispatchThread.java:131
  void java.awt.EventDispatchThread.pumpEventsForHierarchy(java.awt.Conditional, java.awt.Component)
    EventDispatchThread.java:98
  void java.awt.EventDispatchThread.pumpEvents(java.awt.Conditional)
    EventDispatchThread.java:93
  void java.awt.EventDispatchThread.run()
    EventDispatchThread.java:85
Exception occurred during event dispatching:
oracle.jbo.domain.DataCreationException: JBO-25009: Cannot create an object of type:oracle.jbo.domain.Number with value:Rubriek
  java.lang.Object oracle.jbo.domain.TypeFactory.get(java.lang.Class, java.lang.Class, java.lang.Object)
    TypeFactory.java:713
  java.lang.Object oracle.jbo.domain.TypeFactory.getInstance(java.lang.Class, java.lang.Object)
    TypeFactory.java:80
  int oracle.jbo.uicli.binding.JUCtrlListBinding.findListIndex(java.lang.Object)
    JUCtrlListBinding.java:567
  java.lang.Object oracle.jbo.uicli.binding.JUCtrlListBinding.findMatchingListValue(java.lang.Object)
    JUCtrlListBinding.java:425
  java.lang.Object oracle.jbo.uicli.controls.JUMultiAttrListEditor.getItem()
    JUMultiAttrListEditor.java:65
  void javax.swing.plaf.basic.BasicComboBoxUI$EditorFocusListener.focusLost(java.awt.event.FocusEvent)
    BasicComboBoxUI.java:1394
  void java.awt.AWTEventMulticaster.focusLost(java.awt.event.FocusEvent)
    AWTEventMulticaster.java:171
  void java.awt.Component.processFocusEvent(java.awt.event.FocusEvent)
    Component.java:3642
  void javax.swing.JComponent.processFocusEvent(java.awt.event.FocusEvent)
    JComponent.java:1980
  void java.awt.Component.processEvent(java.awt.AWTEvent)
    Component.java:3535
  void java.awt.Container.processEvent(java.awt.AWTEvent)
    Container.java:1164
  void java.awt.Component.dispatchEventImpl(java.awt.AWTEvent)
    Component.java:2593
  void java.awt.Container.dispatchEventImpl(java.awt.AWTEvent)
    Container.java:1213
  void java.awt.Component.dispatchEvent(java.awt.AWTEvent)
    Component.java:2497
  boolean java.awt.LightweightDispatcher.processFocusEvent(java.awt.event.FocusEvent)
    Container.java:2167
  boolean java.awt.LightweightDispatcher.dispatchEvent(java.awt.AWTEvent)
    Container.java:2130
  void java.awt.Container.dispatchEventImpl(java.awt.AWTEvent)
    Container.java:1200
  void java.awt.Window.dispatchEventImpl(java.awt.AWTEvent)
    Window.java:922
  void java.awt.Component.dispatchEvent(java.awt.AWTEvent)
    Component.java:2497
  void java.awt.EventQueue.dispatchEvent(java.awt.AWTEvent)
    EventQueue.java:339
  boolean java.awt.EventDispatchThread.pumpOneEventForHierarchy(java.awt.Component)
    EventDispatchThread.java:131
  void java.awt.EventDispatchThread.pumpEventsForHierarchy(java.awt.Conditional, java.awt.Component)
    EventDispatchThread.java:98
  void java.awt.EventDispatchThread.pumpEvents(java.awt.Conditional)
    EventDispatchThread.java:93
  void java.awt.EventDispatchThread.run()
    EventDispatchThread.java:85
## Detail 0 ##
java.lang.NumberFormatException: k
  int java.lang.Integer.parseInt(java.lang.String, int)
    Integer.java:414
  int java.lang.Integer.parseInt(java.lang.String)
    Integer.java:463
  void java.math.BigDecimal.<init>(java.lang.String)
    BigDecimal.java:149
  void oracle.jbo.domain.Number.<init>(java.lang.String)
    Number.java:258
  java.lang.Object java.lang.reflect.Constructor.newInstance(java.lang.Object[])
    native code
  java.lang.Object oracle.jbo.domain.TypeConvMapEntry.convert(java.lang.Class, java.lang.Class, java.lang.Object)
    TypeConvMapEntry.java:66
  java.lang.Object oracle.jbo.domain.TypeFactory.get(java.lang.Class, java.lang.Class, java.lang.Object)
    TypeFactory.java:681
  java.lang.Object oracle.jbo.domain.TypeFactory.getInstance(java.lang.Class, java.lang.Object)
    TypeFactory.java:80
  int oracle.jbo.uicli.binding.JUCtrlListBinding.findListIndex(java.lang.Object)
    JUCtrlListBinding.java:567
  java.lang.Object oracle.jbo.uicli.binding.JUCtrlListBinding.findMatchingListValue(java.lang.Object)
    JUCtrlListBinding.java:425
  java.lang.Object oracle.jbo.uicli.controls.JUMultiAttrListEditor.getItem()
    JUMultiAttrListEditor.java:65
  void javax.swing.plaf.basic.BasicComboBoxUI$EditorFocusListener.focusLost(java.awt.event.FocusEvent)
    BasicComboBoxUI.java:1394
  void java.awt.AWTEventMulticaster.focusLost(java.awt.event.FocusEvent)
    AWTEventMulticaster.java:171
  void java.awt.Component.processFocusEvent(java.awt.event.FocusEvent)
    Component.java:3642
  void javax.swing.JComponent.processFocusEvent(java.awt.event.FocusEvent)
    JComponent.java:1980
  void java.awt.Component.processEvent(java.awt.AWTEvent)
    Component.java:3535
  void java.awt.Container.processEvent(java.awt.AWTEvent)
    Container.java:1164
  void java.awt.Component.dispatchEventImpl(java.awt.AWTEvent)
    Component.java:2593
  void java.awt.Container.dispatchEventImpl(java.awt.AWTEvent)
    Container.java:1213
  void java.awt.Component.dispatchEvent(java.awt.AWTEvent)
    Component.java:2497
  boolean java.awt.LightweightDispatcher.processFocusEvent(java.awt.event.FocusEvent)
    Container.java:2167
  boolean java.awt.LightweightDispatcher.dispatchEvent(java.awt.AWTEvent)
    Container.java:2130
  void java.awt.Container.dispatchEventImpl(java.awt.AWTEvent)
    Container.java:1200
  void java.awt.Window.dispatchEventImpl(java.awt.AWTEvent)
    Window.java:922
  void java.awt.Component.dispatchEvent(java.awt.AWTEvent)
    Component.java:2497
  void java.awt.EventQueue.dispatchEvent(java.awt.AWTEvent)
    EventQueue.java:339
  boolean java.awt.EventDispatchThread.pumpOneEventForHierarchy(java.awt.Component)
    EventDispatchThread.java:131
  void java.awt.EventDispatchThread.pumpEventsForHierarchy(java.awt.Conditional, java.awt.Component)
    EventDispatchThread.java:98
  void java.awt.EventDispatchThread.pumpEvents(java.awt.Conditional)
    EventDispatchThread.java:93
  void java.awt.EventDispatchThread.run()
    EventDispatchThread.java:85

Similar Messages

  • JComboBox, LOV-Binding, OutOfMemory

    Hi all,
    using a combobox with lov binding and a table with more than 600 entries is producing an outOfMemory-Error after a while.
    That can be seen (e.g. in Task-manager under Windows) if just srolling up and down the popup window of the combobox (Very bad... :-( ).
    Does anyone know how to prevent this ?
    I think it must be some problem with the JUMultiAttrListCellRenderer class of oracle.jbo.uicli.controls but I am not sure about this.
    Thanks in advance
    Guido.

    You're using a combo to populate 600 entries ....
    Wow! Swing default Combo model is not designed to handle large sets of data specially if this data is an object like a Row representing a db table row...
    What's basically happening is all the 600 or more entries are being loaded upfront which is sending all your cpu cycles and ultimately out-of-memory...
    You may either 'set the vm parameter' for more memory
    (use java -mx option)
    or
    you may use the Button Lov binding to pop this LOV list in a dialog which then uses delayed fetch.
    or
    you may write a 'custom ComboBox Model' that does not fetch all the data upfront.

  • JDev 9.0.3 LOV-Binding Bug?

    Hi!
    I've got a little problem with JDev 9.0.3 when migrating my project from JDev 9.0.2. All known Bugs from JDev 9.0.2 seem to be fixed but therefore other bugs appeared.
    My Problem in detail:
    I have 2 views (simplified):
    ORDERVIEW
    -- OrderId (DBSequence)
    -- OrderTypeIdFK (Number)
    ORDERTYPEVIEW
    -- OrderTypeId (Number)
    -- OrderTypeDescription (String)
    On a panel I display a textfield with OrderId and a ComboBox which should display the according OrderTypeDescription.
    So I created a LOVBinding on this ComboBox:
    LOV-ViewObject
    OrderTypeView
    -- OrderTypeId
    TargetViewObject
    OrderView
    -- OrderTypeIdFk
    LOV attributes to display
    -- OrderTypeDescription
    In JDev 9.0.2 this works perfectly, besides the missing search-function.
    When migrating to 9.0.3 without performing any changes I got the following exception when changing a OrderView-Row by selecting another OrderTypeDescription from the ComboBox:
    oracle.jbo.domain.DataCreationException: JBO-25009: Cannot create an object of type:oracle.jbo.domain.Number with value: Buy
    ("Buy" is one OrderTypeDescription)
    It seems that JDev wants to write OrderTypeDescription into the OrderTypeFK-Field. Of course, that can't work...
    If I change "LOV attributes to display" to "OrderTypeId" it works fine, but that's not what I want....
    Any suggestions? Thanks a lot
    Bernhard

    I have a problem very much like the one Bernhard described but in 9.0.2. A combobox with LOV-binding first worked fine but then I decided to make the control non-editable to force the user select one of the list items, not modifying the combobox contents by keyboard. After all, it makes no sense to let the user write something that has no counterpart in the LOV list. So I added 'myCombo.setEditable(false)' in my code. The result was that the combobox still shows Ok a description corresponding to an id value found in database but if I pick another value in the combobox list and try to update it to database then I get the same error Bernhard did. Is this the same bug? Should I upgrade to 9.0.3 (we are planning to do it) and get the patch to it or is there any other remedy?
    - Risto

  • LOV Binding issue in ADF JClient Component Demonstration

    hi
    There seems to be a problem with committing the changes made with the "LOV Binding" in the "ADF JClient Component Demonstration".
    see "ADF JClient Component Demonstration" :
    http://www.oracle.com/technology/sample_code/products/jdev/1012/jclient_guide/adf_jclientcomponentdemo.zip
    scenario (using JDeveloper 10.1.2) :
    (1) run componentdemo.StartFrame
    (2) click the first button to get to the "LOV Binding Demo"
    (3) click in the "State" field and press F3
    (4) select a new value from the "List Of Values", click OK
    (5) notice the value in the "State" field has changed, click "File" > "Exit"
    (6) click on "Commit" when asked "How do you want to close the transaction?"
    (7) run componentdemo.StartFrame again and navigate to the "LOV Binding Demo" again
    (8) notice that the "State" field still has its old value
    How can this be explained?
    thanks
    Jan Vervecken

    thanks for your reply Frank
    To verify what the behavior would be in the JDeveloper version it was built for, I tried to open the Workspace in JDeveloper 9.0.5.2 and got this "Unable to Open File" message:
    "File D:\<path>\ADFJClientComponentDemo.jws was saved in version 10120 file format and cannot be opened with an older version of JDeveloper 10g."
    To make sure, I downloaded this again
    http://www.oracle.com/technology/sample_code/products/jdev/1012/jclient_guide/adf_jclientcomponentdemo.zip
    and I got the same error message.
    Could you please hint to a solution for this (in JDeveloper 10.1.2 if possible).
    greetings
    Jan Vervecken

  • Differences Between JDev BC4J/JClient Versions

    Hi,
    I'm finding key differences between library versions of my BC4J and JClient libraries which are introducing bugs into my application. What once ran properly no longer runs properly in JDev 10.1.2. What makes this particularly interesting is that the Application Server has the older libraries (which work) while JDeveloper 10.1.2 has the new libraries (which have the issues). I was wondering if anyone could point me to a document of all the changes in BC4J and JClient between releases.
    Here are two of the differences I'm seeing...
    1. In the older BC4J lib (deployed by default with the 10g app server) using a ViewCriteria to select a ROW with a CHAR[7] using a string with less than 7 characters works fine. It simply does a standard CHAR[7] comparision, treating the missing characters as spaces, and finds a match. ie "select * from MY_TABLE where KEY='AA' finds the key with 'AA ' and it shows up in my results as I desire.
    In the newer BC4J lib, while the same select statement runs (and finds the row) the BC4J libraries seem to be doing a post processing in the ViewCriteria which HIDES this row from me. I have to manually PAD my input string in Java before putting it into the ViewCriteria to get it to work. (And no, the database can't be changed to a VARCHAR for other reasons.)
    2. The JFACE library's ScrollablePanel has no trouble creating a scrollable panel with a table for my ViewObject in the old version of the JFACE library. However, the new version of the JFace library has a problem where scrolling the panel shows many blank rows, until I actually click on a row, at which point the internal ViewObject cursor moves forward and loads that data (and hides the earlier data).
    This is annoying as I really would prefer to be able to upgrade to new libraries when they come out. But instead I'm having to download the older libraries and put them into JDeveloper instead.
    a. Can anyone point me to a document listing all changes between BC4J and JFace library versions?
    b. Does anyone know of a better way to work around the issues I'm seeing above? They're really annoying.
    Thanks,
    Doug

    Hi,
    I use weblogic 10.3.4 with Application Development Runtime (11.1.1.2.0) and JDev 11.1.1.4.i assume you are using standalone wls 10.3.4 with Application Development Runtime (11.1.1.2.0).
    But jdeveloper 11.1.1.4 has ADR 11.1.1.4.0 .. It would create some incompatabilities.
    Betw:
    you can install ADR from jdeveloper setup also, just uncheck the jdev and wls studio installation when installing ADR from jdev, It will also prompt for the wls home.
    Regards,
    Santosh.
    Edited by: Santosh Vaza on Apr 23, 2011 4:52 PM

  • Possible Bug concerning JClient Forms with tables

    If I instantiate a JClient Frame first time a lot of empty rows appear in the table, if there is NO DATA in the database table.
    If there IS data in the database table, at the fist time everything is OK, but if I instantiate the JClient frame a second time, in the JClient table a lot of empty rows appear in addition to the expected ones.
    To reproduce this behaviour you can create a single JClient Table Form and then add a component to instantiate a new Form of the actual one e.g. I have reproduced it changing the standard About Menu so that <About> instantiates and sets visible the Form again.
    menuHelp.setMnemonic('H');
    itemHelpAbout.setText("About");
    itemHelpAbout.setMnemonic('A');
    itemHelpAbout.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
    FrameView1 frame = new FrameView1(app);
    frame.setVisible(true);
    Is this a bug ?
    Is there a workaround for this behaviour ?

    If I instantiate a JClient Frame first time a lot of empty rows appear in the table, if there is NO DATA in the database table.
    If there IS data in the database table, at the fist time everything is OK, but if I instantiate the JClient frame a second time, in the JClient table a lot of empty rows appear in addition to the expected ones.This has been discussed on OTN at 10G JDBC Driver SQl Exception earlier.
    Please see if suggested workaround works for your case.

  • UIX Bug - bc4j:setAttribute

    The context:
    We have a UIX form used to edit a view row. The 'save' event is executing a chain of bc4j:setAttribute events.
    The bug:
    The row contains an attribute having a null value. The corresponding text field into the form remains unchanged (empty). This means that on submit, the browser sends to the server a 'null' value. Unexpectedly, the setAttribute method for this attribute is invoked for the current ViewRowImpl. Since the value of the attribute is not changed, I am expecting a different behavior i.e. not invoking this method.
    thanks

    Hi,
    This is a bug, which has been filed.
    Thanks,
    Gabrielle

  • Possible Bug In Application Import (LOV binding lost for columns in IR)

    Hi,
    I've experienced strange behavior when after I imported application into APEX 4.1
    What I have done:
    1) Exported application from 4.0 - (db 11.1)
    2) Imported application into different instance - APEX 4.1 (db 11.2) to different workspace (using diferent schema) and with different application ID - manually changed (original was 106 new was 206)
    What happened:
    In Interactive Reports columns that were displayed as "Display as Text (Based on LOV, escape special characters)" lost their link to appropriate LOV - so the field "Named List of Values" shows "- Select Named LOV -" instead of the LOV name, which was assigned there in original application I exported.
    Also - Named LOV imported OK with application.
    And If application was imported under same ID, this issues was not there. So it looks only related if application ID changes from exported app.
    Any idea why such strange behaviour happens? Is it bug, if yes is there already fix for it?
    I have two workspaces on same db instance and want to migrate application between them - this make things complicated.
    Regards
    Ivan

    Hi,
    this is bug# 10369735 which has been fixed in 4.1. It was a problem of the export in 4.0 which didn't include all the necessary information. See Copying or exporting an application - bug?  LOVs not getting set in reports
    So I think you have two options:
    1) If you upgrade your existing 4.0 system to 4.1 you should be fine. If you now export your app all the LOV information will be included.
    2) If you export from a 4.0 system and import it into a 4.1 system you have fix your LOVs once again and then you are fine.
    Regards
    Patrick
    My Blog: http://www.inside-oracle-apex.com
    APEX Plug-Ins: http://apex.oracle.com/plugins
    Twitter: http://www.twitter.com/patrickwolf

  • BUG ? :  ADF creating extra VO instance using bind variables in a LOV query

    ADF 11.1.1.1.0
    After "playing around" with bind variables Setting bind variables in view objects for LOV I've come across something strange that I've reproduce using the HR schema and tables Employees and Departments. Its a bit long but here goes :
    Using the HR schema tables departments and employeesI'm trying to create a LOV (selectOneChoice) for the
    employee department, the LOV having a bind variable that limits the values returned in this case returning only DepartmentId = 50
    I've create a VO lovDepartment (not based on an EO) with the following query :
    SELECT Departments.DEPARTMENT_ID,
           Departments.DEPARTMENT_NAME,
           Departments.MANAGER_ID,
           Departments.LOCATION_ID
    FROM DEPARTMENTS Departments
    where DEPARTMENT_ID  = :pDeptIdA LOV has been defined on the DepartmentId attribute of the EmployeesView.
    The lovDepartmentImpl overrides the executeQueryForCollection to set the bind variable value.
        @Override
        protected void executeQueryForCollection(Object object, Object[] object2,
                                                 int i) {
            setNamedWhereClauseParam("pDeptId", "50");       
            super.executeQueryForCollection(object, object2, i);
        }When using an ADF form to create a new employee the DepartmentId lov is empty.
    Enabling SQL tracing shows the following :
    [370] _LOCAL_VIEW_USAGE_model_EmployeesView_lovDepartment1_0 ViewRowSetImpl.doSetWhereClause(-1, pDeptId, null)
    [371] _LOCAL_VIEW_USAGE_model_EmployeesView_lovDepartment1_0 ViewRowSetImpl.execute caused params to be "un"changed
    [372] Column count: 4
    [373] _LOCAL_VIEW_USAGE_model_EmployeesView_lovDepartment1_0 ViewRowSetImpl.doSetWhereClause(-1, pDeptId, null)
    [374] _LOCAL_VIEW_USAGE_model_EmployeesView_lovDepartment1 ViewRowSetImpl.setNamedWhereClauseParam(pDeptId, 50)
    [375] ViewObject: _LOCAL_VIEW_USAGE_model_EmployeesView_lovDepartment1 Created new QUERY statement
    [376] _LOCAL_VIEW_USAGE_model_EmployeesView_lovDepartment1>#q computed SQLStmtBufLen: 235, actual=195, storing=225
    [377] SELECT Departments.DEPARTMENT_ID,
           Departments.DEPARTMENT_NAME,
           Departments.MANAGER_ID,
           Departments.LOCATION_ID
    FROM DEPARTMENTS Departments
    where DEPARTMENT_ID  = :pDeptId
    [378] Bind params for ViewObject: _LOCAL_VIEW_USAGE_model_EmployeesView_lovDepartment1
    [379] For RowSet : _LOCAL_VIEW_USAGE_model_EmployeesView_lovDepartment1_0
    [380] Binding null of type 12 for "pDeptId"
    [381] No Resource Bundle found but null value id:LOV_DepartmentId_LOVUIHints_NullValueId is defined in an ListBinding Definition.It would seem that 2 lovDepartment instances are used one at line 370 LOCALVIEW_USAGE_model_EmployeesView_lovDepartment1_0
    and one at line 374 LOCALVIEW_USAGE_model_EmployeesView_lovDepartment1
    The one at line 374 LOCALVIEW_USAGE_model_EmployeesView_lovDepartment1 gets the variable bound at line 374
    however LOCALVIEW_USAGE_model_EmployeesView_lovDepartment1_0 gets a null value and would explain the empty LOV
    Can anybody explain what is happening here ? (and how to use bind variables in LOV queries)
    Regards
    Paul
    (bump)
    Edited by: Paul (MITsa) on Jul 14, 2009 10:46 AM
    I've now tried all types of LOV from ChoiceList to Radio groupe by testing the application module - none of them work.....
    Edited by: Paul (MITsa) on 14-Jul-2009 22:52

    when you rinvoke executeQueryForCollection the bind variables are allready set and they exist in Object[] object2 method parameters.
    in order to change them you need something like:
    private void changeGenericBindVariable(Object[] params, String paramName, Object paramValue) {
    for (int i = 0; i < params.length; i++) {
    if (paramName.equals(((Object[])params)[0].toString()))
    ((Object[])params[i])[1] = paramValue;
    * executeQueryForCollection - overridden for custom java data source support.
    protected void executeQueryForCollection(Object qc, Object[] params,
    int noUserParams) {
    changeGenericBindVariable(params, "pDeptId", "50")
    super.executeQueryForCollection(object, object2, i);
    But its better to set bind variables before you executeQueryForCollection. like when you invoke LOV.
    For cascading LOVs and the problems i have check:
    [http://adfbugs.blogspot.com/2009/07/jdeveloper-11-r1-cascading-lov-bugs.html]

  • Major bug in 1.0.4 I would love Apple to fix (PLEASE)

    In the past when loading podcasts on the shuffle the ipod would move all the podcasts to the front of the playlist and would even change the order. Around 1.0.2 or 1.0.3 I was now able to order my podcasts how I want. 1.0.4 I can no longer order the podcasts how I want. VERY annoying. Has anyone else been annoyed with this and is there a fix other than restoring 1.0.3?
    Message was edited by: jlbanker

    Apple broke manual ordering of tracks in iPod Shuffle software version 1.0.4 and no one has discovered a reliable workaround yet (that doesn’t require third-party software). You can report this bug at:
    http://www.apple.com/feedback/ipodshuffle.html
    Who knows if anyone at Apple actually reads that feedback, but perhaps if enough people report this bug, they’ll fix it sooner rather than later.

  • HTMLDB 2.0 bug - tabular forms - select list from named LOV

    Hi!
    Changing a column in a tabular form to 'select list (named lov)' gets the following error in HTMLDB 2.0 when you try to add a row (to an empty table in my case):
    PL/SQL error at column 133.
    Create a table and then create a tabular form on it. Then change a report column to be a 'select list (named lov)'. Save and run the form and the error occurs.
    Thanks!
    Dave Venus

    Brian,
    This example:
    http://htmldb.oracle.com/pls/otn/f?p=31517:176
    and this example:
    http://htmldb.oracle.com/pls/otn/f?p=31517:160
    may help you.
    Denes Kubicek
    http://deneskubicek.blogspot.com/
    http://www.opal-consulting.de/training
    http://apex.oracle.com/pls/otn/f?p=31517:1
    -------------------------------------------------------------------

  • Bug? - PSP LED Moves on FP when Binding Change Occurs

    [LabVIEW 2010]
    When I update the binding on the control the PSP LED moves. This is annoying
    Cheers
    -JG
    Unable to display content. Adobe Flash is required.
    Certified LabVIEW Architect * LabVIEW Champion

    This was reported to R&D (CAR ID # 296216) for further investigation. I did try saving the VI before the variable to which the control was bound was changed, but the same behavior occurred.
    Thanks for the feedback!
    -Sean N
    Applications Engineering Specialist - Semiconductor Test
    National Instruments

  • LOV gives jbo-25013  in 9.0.3

    Hi,
    We have migrated our project from 9.0.2 to 9.0.3 (preview 988). In our
    JClient we have a button lov-binding to select a new record in
    the form.
    If we try this JClient in 903, selecting another record in the lov-window
    gives this error
    (oracle.jbo.TooManyObjectsException) JBO-25013: Too many objects match the primary key oracle.jbo.Key[FDO ].
    But it is even worse now, because it is not posssible to create this LOV-binding
    with a new JClient project created in 903 (also the bc's are new).
    I choose in the JClient LOv-binding wizard the lov viewobject the same
    as the target viewobject. Add the attributes for the object binding.
    In this way it was possible in 902
    to have a lov for selecting a new record. This worked fine.
    Any suggestions?
    regards,
    Richard

    Okay, I hope this is enough information
    We have a Jclient Form of employees. One record shown at the time.
    I do not want to create a new record,
    but navigate to a employee which I like to select from an Lov window.
    To create this functionality in 902 I added a button to the panel and
    used to lov binding wizard. I selected the employee vo (CasMedewerkerView)
    for the lov viewobject and also in the target viewobject is
    selected the employee vo.
    I used two fields for the LOv/Object binding. The following code
    was generated.
    jButton1.setModel(JULovButtonBinding.createLovBinding(panelBinding
    , jButton1, "CasMedewerkerView", null
    , "CasMedewerkerViewIter"
    , new String[] {"Afkorting", "Naam"}
    , "CasMedewerkerView"
    , new String[] {"Afkorting", "Naam"}
    , new String[] {"Afkorting", "Naam"}));
    The field Afkorting is primary key for this table.
    If I runtime pressed the button a LOV window showed up and I could
    select an employee and after selecting, the fields in the JClient
    were filled with the data belonging to this employee.
    Now if I run this project with jdev903, i receive runtime the error
    JBO-25013: Too many objects match the primary key oracle.jbo.Key[FDO ].
    Then
    I builded from scratch a new BC and a JClient Form in 903.
    I used the wizard in the same way as i did in 902.
    Selecting the same Vo for the lov viewobject as for the target viewobject.
    The code generated is:
    jButton1.setModel(JULovButtonBinding.createLovBinding(panelBinding
    , jButton1, "CasMedewerkersView1", null
    , "CasMedewerkersView1Iter"
    , new String[] {"Afkorting", "Naam"}
    , "CasMedewerkersView1"
    , "CasMedewerkersView1LOVIter"
    , "CasMedewerkersView1LOVIter"
    , new String[] {"Afkorting", "Naam"}
    , new String[] {"Afkorting", "Naam"}
    , false, "", null));
    If run this example I receive again the error, Jbo-25013
    Moreover, if i close Jdev and restart, then in the property model
    of the JButton my Jclient Lov binding is gone.
    If I now replace the code "CasMedewerkersView1LOVIter" ,as
    suggested, by Grant Ronald with
    CasMedewerkersView1Iter the Jclient runs like I want, and no error
    appears.
    Is the wizard generating wrong code or do I use
    the wizard incorrectly to have the functionality as I described?
    regards, Richard

  • JComboBox binding problem or bug.

    I've a JClient app in wich I've a JCombo with standard LOV binding and setEditable(true) set.
    Clicking on that combo, sometime (but I wasn't able to understand when) it tries to set the description value into attribute and then throws an error.
    Debugging code I found that, in that situation the getSelectedItem() returns a String, but in normal situations it returns ViewRowImpl.
    Is it a bug into the model ?
    Is there any workaround ?
    TIA
    Tullio

    JDeveloper 9.0.3.1
    JavaSDK 1.4.2
    ViewObject vo = appModule.createViewObject("NameVO", "BusinesLogic.nameVO");
    jList.setModel(JUListSingleSelBinding.createNavigationBinding(panelBinding, jList, vo.getName(), null, vo.getName()+"Iter", new String[] {"Name"}, null));
    And this working - I see my list.
    But, in run mode methods
    jList.getSelectedValue()
    and
    jList.getModel().getElementAt(i)
    and others
    returning String :(
    In normal situation, this methods returning
    oracle.jbo.server.ViewRowImpl
    My be it's problem from
    [JDev 9.0.3.3] Bug in JUMultiAttrListCellRenderer ?
    and jdev903 working ONLY with jdk13 ???
    ... and jdev905 working ONLY with jdk14 ???

  • How to implement concurrent nested Dialogs with BC4J and JClient

    Hello,
    we are evaluating BC4J/JClient. In our application we have a navigation tree
    in a Java client from which we can call nested dialogs to set attributes,
    call business logic etc.
    Is it possible to open more than one sub-dialog from our starting navigation tree
    at the same time? Each sub-dialog should have its own transaction context.
    To our knowledge we need a new application module for each sub-dialog in order
    to start a new transaction. But how is the navigation tree updated if data
    from the sub-dialogs is commited? The dialogs and the navigation tree don't share
    the same model, do they? The navigation tree might have to show lots of data
    retrieved over a slow connection, so simply updating the entire model is not a solution.
    This could work if an intelligent caching fetches only the changed data.
    So: What is the best way to implement sub-dialogs with their own transaction plus an
    update mechanism?
    Thanks for any help!

    Hello,
    we are evaluating BC4J/JClient. In our application we have a navigation tree
    in a Java client from which we can call nested dialogs to set attributes,
    call business logic etc.
    Is it possible to open more than one sub-dialog from our starting navigation tree
    at the same time? Each sub-dialog should have its own transaction context.
    To our knowledge we need a new application module for each sub-dialog in order
    to start a new transaction. But how is the navigation tree updated if data
    from the sub-dialogs is commited? The dialogs and the navigation tree don't share
    the same model, do they? The navigation tree might have to show lots of data
    retrieved over a slow connection, so simply updating the entire model is not a solution.
    This could work if an intelligent caching fetches only the changed data.
    So: What is the best way to implement sub-dialogs with their own transaction plus an
    update mechanism?To create a UI like this, see the sample on OTN at
    http://otn.oracle.com/sample_code/products/jdev/jclient/jclient_binding_demo.html
    YOu'd have to tweak this sample so that each sub-window comes up with it's own AM (as you've right suggested).
    Regarding commit, yes, if you do not want to query the whole model on the navigator, you may use Transaction.commitAndSync() method to commit changes instead of simply performing a commit() call.
    See javadoc on this method for details on how it works.
    Thanks for any help!

Maybe you are looking for

  • Error while extracting values from SOAP Body using XPath (Retrieve from Message filter)

    Hi, I am using 'Retrieve from Message' filter to extract element value from the following SOAP response envelope: <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:math="http://example.com/math.xsd"> <soapenv:Header/>

  • Help in modifying this query

    Hi everyone, In the below query, for the user_code column, if the same data is present in mst_user and unlock_user_checker tables, then only the data from the unlock_user_checker table must be displayed in the user code column. Kindly help !!! select

  • Docs to go problem.

    I am having an issue now with docs to go, if firewall is enabled I cannot use the word to go Aplication. It says that it is trying to open files inside and outside the fireall and that isn't allowed by my IT policy. I researched this problem on this

  • Error while creating webdynpro iview after  portal upgrade to ehp1

    Hello  All We have upgraded  our portal from 7.0  sp  15   to  portal  7.01  sp  3    . After upgrade we can create  iviews using portal components  but we are not able to create  iview using Iview template We are getting following  error  while crea

  • Fiori custom theme - low performances

    Hi, since we activated our custom theme, fiori apps have very bad performances (often endless loading). Any idea ? Thanks ! Alexandre Tags edited by: Michael Appleby