« Return to Thread: [core] New Desktop Database Application Wizard resulting application behaviour

Re: [core] New Desktop Database Application Wizard resulting application behaviour (new)

by RobertPage :: Rate this Message:

Reply to Author | View in Thread

Hi All,

I'm still having problems with the code the Dialog/Wizard generates.
In some cases on my slower Windows 2000 machine it stops before the final building step and
leaves me with references to placeholders like:
        Collection<tp2.ReqQue> rs = s.get_joinCollectionCapital_();
in the newDetailRecord() and the deleteDetailRecord() methods.

I couldn't reproduce that on my new Windows XP Pro machine. Instead, while I was trying, I ran into
a different problem that I can reproduce.

While I was using a form to change some data in a detail record, I encountered an exception.
(A test case is included below.)

Exception in thread "AWT-EventQueue-0" org.jdesktop.beansbinding.PropertyResolutionException:
Error evaluating EL expression ValueExpression[${albumname}] on dialogtest.Book[albumId=103]

OS: Windows 2000 and XP Pro
NetBeans release 6.0

Steps to reproduce:

1. Create and populate the following tables.


CREATE TABLE AUTHOR
    (
    AUTHOR_ID INT NOT NULL,
    FIRSTNAME VARCHAR(200) NOT NULL,
    SURNAME VARCHAR(200) NOT NULL,
        PRIMARY KEY (AUTHOR_ID)
);

CREATE TABLE BOOK
    (
    ALBUM_ID INT NOT NULL,
    ALBUMNAME VARCHAR(200) NOT NULL,
        AUTHOR_INH INT,
    FOREIGN KEY (AUTHOR_INH) REFERENCES AUTHOR (AUTHOR_ID),
        PRIMARY KEY (ALBUM_ID)
);

insert into author values (1, 'Larry', 'Niven');
insert into author values (2, 'Berke', 'Brethed');
insert into author values (3, 'Douglas', 'Adams');
insert into author values (4, 'Pierre', 'Burton');

insert into book values (101, 'N Space', 1);
insert into book values (102, 'Ringworld', 1);
insert into book values (103, 'HHG', 3);
insert into book values (104, 'So Long', 3);
insert into book values (105, 'Vimy', 4);

2. Generate the application as a New Project (Java - Java Desktop Application | Database Application).
AUTHOR is the master table, BOOK is the detail table.

3. Fix the binding on the detail table. (See earlier posts in this thread re: binding/elements/advanced)

4. Start the application.
You should see 4 authors.
Click on 'Niven'. You should see 2 books.
Click on 'Brethed'. You should see no books.
Click on 'Adams'. You should see 2 books.
Click on Burton. You should see 1 book.
Click on 'Adams' again. You should see 2 books.
Double-click on the Albumname 'HHG' to invoke the editor.
Append the words ' to the' after the 'HHG'.
Click on the Album ID for that record (103) to force parsing of the Albumname.
You should see an Exception.
Exception in thread "AWT-EventQueue-0" org.jdesktop.beansbinding.PropertyResolutionException:
     Error evaluating EL expression ValueExpression[${albumname}] on dialogtest.Book[albumId=103]
(See below).
The Save button becomes hilighted. If you click it, every exisiting first book appears to be changed to that same albumname.
If you click the Refresh button, they still look changed (but they aren't really changed in the database).

5.Stop the application and restart it to verify that only 1 record has changed.
Fortunately, only the changes to Album ID 103 are are saved to the database. The others are back to normal.

The EL Exception:

[TopLink Info]: 2007.12.05 11:20:39.921--ServerSession(4875224)--TopLink, version: Oracle TopLink Essentials - 2.0 (Build b58g-fcs (09/07/2007))
[TopLink Info]: 2007.12.05 11:20:40.500--ServerSession(4875224)--file:/C:/Documents%20and%20Settings/default/My%20Documents/NetBeansProjects/DialogTest/build/classes/-DialogTestPU login successful
5-Dec-2007 11:20:41 AM org.jdesktop.application.SessionStorage restoreTree
WARNING: No saved state for javax.swing.JTable[detailTable,0,0,419x0,alignmentX=0.0,alignmentY=0.0,border=,flags=251658568,maximumSize=,minimumSize=,preferredSize=,autoCreateColumnsFromModel=true,autoResizeMode=AUTO_RESIZE_SUBSEQUENT_COLUMNS,cellSelectionEnabled=false,editingColumn=-1,editingRow=-1,gridColor=javax.swing.plaf.ColorUIResource[r=128,g=128,b=128],preferredViewportSize=java.awt.Dimension[width=450,height=400],rowHeight=16,rowMargin=1,rowSelectionAllowed=true,selectionBackground=javax.swing.plaf.ColorUIResource[r=192,g=220,b=192],selectionForeground=javax.swing.plaf.ColorUIResource[r=0,g=0,b=0],showHorizontalLines=true,showVerticalLines=true]
Exception in thread "AWT-EventQueue-0" org.jdesktop.beansbinding.PropertyResolutionException:
Error evaluating EL expression ValueExpression[${albumname}] on dialogtest.Book[albumId=103]
        at org.jdesktop.beansbinding.ELProperty.setValue(ELProperty.java:507)
        at org.jdesktop.beansbinding.Binding.saveUnmanaged(Binding.java:1275)
        at org.jdesktop.swingbinding.JTableBinding$ColumnBinding.saveUnmanaged0(JTableBinding.java:654)
        at org.jdesktop.swingbinding.JTableBinding$ColumnBinding.access$1800(JTableBinding.java:542)
        at org.jdesktop.swingbinding.JTableBinding$BindingTableModel.setValueAt(JTableBinding.java:745)
        at javax.swing.JTable.setValueAt(JTable.java:2676)
        at javax.swing.JTable.editingStopped(JTable.java:4675)
        at javax.swing.AbstractCellEditor.fireEditingStopped(AbstractCellEditor.java:125)
        at javax.swing.DefaultCellEditor$EditorDelegate.stopCellEditing(DefaultCellEditor.java:330)
        at javax.swing.DefaultCellEditor.stopCellEditing(DefaultCellEditor.java:215)
        at javax.swing.JTable$GenericEditor.stopCellEditing(JTable.java:5429)
        at javax.swing.plaf.basic.BasicTableUI$Handler.mousePressed(BasicTableUI.java:986)
        at java.awt.AWTEventMulticaster.mousePressed(AWTEventMulticaster.java:263)
        at java.awt.Component.processMouseEvent(Component.java:6035)
        at javax.swing.JComponent.processMouseEvent(JComponent.java:3260)
        at java.awt.Component.processEvent(Component.java:5803)
        at java.awt.Container.processEvent(Container.java:2058)
        at java.awt.Component.dispatchEventImpl(Component.java:4410)
        at java.awt.Container.dispatchEventImpl(Container.java:2116)
        at java.awt.Component.dispatchEvent(Component.java:4240)
        at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322)
        at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3983)
        at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916)
        at java.awt.Container.dispatchEventImpl(Container.java:2102)
        at java.awt.Window.dispatchEventImpl(Window.java:2429)
        at java.awt.Component.dispatchEvent(Component.java:4240)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
Caused by: org.jdesktop.el.ELException: java.lang.NullPointerException
        at org.jdesktop.el.BeanELResolver.setValue(BeanELResolver.java:335)
        at org.jdesktop.beansbinding.TempELContext$BeanDelegateELResolver.setValue(TempELContext.java:87)
        at org.jdesktop.el.CompositeELResolver.setValue(CompositeELResolver.java:265)
        at org.jdesktop.el.impl.parser.AstIdentifier.setValue(AstIdentifier.java:81)
        at org.jdesktop.el.impl.ValueExpressionImpl.setValue(ValueExpressionImpl.java:259)
        at org.jdesktop.beansbinding.ELProperty.setValue(ELProperty.java:505)
        ... 32 more
Caused by: java.lang.NullPointerException
        at org.jdesktop.beansbinding.ELProperty$SourceEntry.sourceChanged(ELProperty.java:324)
        at org.jdesktop.beansbinding.ELProperty$SourceEntry.propertyChange(ELProperty.java:333)
        at java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:339)
        at java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:276)
        at dialogtest.Book.setAlbumname(Book.java:70)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.jdesktop.el.BeanELResolver.setValue(BeanELResolver.java:330)
        ... 37 more


Since this part of NetBeans is a work in progress, and NetCAT is winding down, where's the best
place to post about any future problems? (I'm assuming another Netbeans.org group).
Also, in terms of IssueZilla, what components would this be classed under? Core/dialog?

Thanks for the help,
Robert

 « Return to Thread: [core] New Desktop Database Application Wizard resulting application behaviour