Skip to main content

A few comments from a newcomer

4 replies [Last post]
lemoncoke
Offline
Joined: 2004-10-01
Points: 0

Finding the concepts of javadesktop.org very appealing, I decided to try the most current version 0.6. The first experience was not encouraging (see my previous post). Since I have not received any hints on what is the reason for missing the "net/openmarkup" classes, I spent a bit more time looking around:

1. My first problem was caused by the incorrect run.bat file in the release, specifically the line:

set JARS=lib\jdnc-runner.jar;lib\jdnc-0_5-all.jar;lib\jlfgr-1_0.jar

It really should be:

set JARS=lib\jdnc-runner.jar;lib\jdnc-0_6-all.jar;lib\jlfgr-1_0.jar

(the jar with all JDNC classes should be version 0_6)

Getting past this trivial error, things became more "exciting":

2.When running the directory.jdnc starts forever spewing:

SEVERE Error instantiatiating: org.jdesktop.jdnc.JNTreeTable : java.lang.ClassNotFoundException: class org.jdesktop.jdn
c.JNTreeTable : java.lang.IllegalArgumentException: model already bound

3. masterDetail sample fails to run with the following behavior:

run masterDetail.jdnc
SEVERE Exception loading: demo\masterDetail.jdnc : java.lang.IllegalArgumentException: Element 1 is part of another pip
eline.
at org.jdesktop.swing.decorator.HighlighterPipeline.(Unknown Source)
at org.jdesktop.jdnc.JNTable.initHighlighter(Unknown Source)
at org.jdesktop.jdnc.JNTable.setColumnForeground(Unknown Source)
at org.jdesktop.jdnc.markup.elem.TableElement.applyColumnProperties(Unknown Source)
at org.jdesktop.jdnc.markup.elem.TableElement.applySpecialProperties(Unknown Source)
at org.jdesktop.jdnc.markup.elem.TableElement.applyAttributesAfter(Unknown Source)
at org.jdesktop.jdnc.markup.elem.ElementProxy.getObject(Unknown Source)
at org.jdesktop.jdnc.markup.elem.ElementProxy.assimilateChildren(Unknown Source)
at org.jdesktop.jdnc.markup.elem.ElementProxy.getObject(Unknown Source)
at org.jdesktop.jdnc.markup.elem.ElementProxy.assimilateChildren(Unknown Source)
at org.jdesktop.jdnc.markup.elem.ElementProxy.getObject(Unknown Source)
at org.jdesktop.openmarkup.ri.ObjectRealizerImpl.getObject(ObjectRealizerImpl.java:113)
at org.jdesktop.openmarkup.ri.ObjectRealizerImpl.getObject(ObjectRealizerImpl.java:117)
at org.jdesktop.openmarkup.ri.ObjectRealizerImpl.getObject(ObjectRealizerImpl.java:124)
at org.jdesktop.jdnc.runner.Application.realizeObject(Unknown Source)
at org.jdesktop.jdnc.runner.Application.(Unknown Source)
at org.jdesktop.jdnc.runner.Application.(Unknown Source)
at org.jdesktop.jdnc.runner.Application.main(Unknown Source)

4. TreeTable fails with a different cause:

C:\Congral\Samples\Swing\jdnc>run treeTable.jdnc
SEVERE Error instantiatiating: org.jdesktop.jdnc.JNTreeTable : java.lang.ClassNotFoundException: class org.jdesktop.jdn
c.JNTreeTable : java.lang.IllegalArgumentException: model already bound
at java.beans.Beans.instantiate(Beans.java:208)
at java.beans.Beans.instantiate(Beans.java:48)
at org.jdesktop.jdnc.markup.elem.ElementProxy.instantiate(Unknown Source)
at org.jdesktop.jdnc.markup.elem.TreeTableElement.instantiate(Unknown Source)
at org.jdesktop.jdnc.markup.elem.ElementProxy.getObject(Unknown Source)
at org.jdesktop.jdnc.markup.elem.ElementProxy.assimilateChildren(Unknown Source)
at org.jdesktop.jdnc.markup.elem.ElementProxy.getObject(Unknown Source)
at org.jdesktop.openmarkup.ri.ObjectRealizerImpl.getObject(ObjectRealizerImpl.java:113)
at org.jdesktop.openmarkup.ri.ObjectRealizerImpl.getObject(ObjectRealizerImpl.java:117)
at org.jdesktop.openmarkup.ri.ObjectRealizerImpl.getObject(ObjectRealizerImpl.java:124)
at org.jdesktop.jdnc.runner.Application.realizeObject(Unknown Source)
at org.jdesktop.jdnc.runner.Application.(Unknown Source)
at org.jdesktop.jdnc.runner.Application.(Unknown Source)
at org.jdesktop.jdnc.runner.Application.main(Unknown Source)

JDNC is a great idea, and I would really like to see it succeed (perhaps even contribute to it, if I ever find the time). So, I am posting this with the hope that it will help removing a few bugs -- unless of course, my findings are "pilot errors".

Reply viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
Mark Davidson
Offline
Joined: 2006-02-17
Points: 0

Hi Lemoncoke (if that is your real name),

I'm sorry about the problems that you are experiencing. We have been posting builds but have not done a lot of QA beyond ensuring that all the unit tests pass. I develop on the Linux platform so I don't really do a lot of testing on Windows.

Beyond the platform issues the exceptions are valid. I will address your issues for the next promotion. I will also do a smoke test on the Windows platform.

Thanks,

--Mark

lemoncoke
Offline
Joined: 2004-10-01
Points: 0

Hi, Mark

About 11 years ago, I became the VP Engineering at Visix Software, company that created a product called Galaxy, which was the first serious attempt to define the concept of the "platform independent software development". A few years later, we also created the only ever Sun-independent implementation of Java (based on Gosling's just published language definition).

The reason I am mentioning this is the following: in the first year of selling our Java system (it was called Vibe), we had well over 20 different "versions", supporting all possible operating systems, while Sun had only Solaris and a shaky Windows implementations. Well, we had the identical vision then as you still have - to make it work the same on all platforms. So, we sweated bullets for different Mac, VMS, HP-UX, Windows 16 and 32 bit and many other versions, and I still remember the pains associated with such efforts.

I understand that your statement "[i]I don't really do a lot of testing on Windows[/i]" has no implications on your team's acitivities, but I would still encourage you not to classify the existing platforms into [b]preferrable[/b] and [b]less preferrable[/b] :-)

Thanks for your help, Mark

Nik Ivancic

Mark Davidson
Offline
Joined: 2006-02-17
Points: 0

Hi Nik,

I never meant to imply that Windows is a marginal platform. In fact, the other full time Sun JDNC team members develop on the Windows platform. Within J2SE engineering we have committed extensive resources to Linux, Windows and Solaris VM implementation in 32 and 64 bit flavours. It took many years to get the build, code and testing systems in synch.

I just wanted to qualify that I do the release engineering for these JDNC promoted builds and I admit that I haven't been as dilligent testing on the Windows platform so changes in batch files (like this one) crept through the cracks.

Moving forward, I will incorporate a smoke test on Windows as part of the release process.

Thanks for your insight and understanding.

--Mark

Mark Davidson
Offline
Joined: 2006-02-17
Points: 0

On 10/04/2004 09:29 PM, Amy Fowler wrote:
> Hum, not sure why JNTreeTableUnit test is busted, but I'm happy
> to take a look if you want.

There are two errors that were introduced.

1. Highligher pipeline binding

2. Infinite loop in TableModel binding.

I have also determined the extent of the errors:
[code]
0_6-2004_09_03 0_6-2004_10_01
directory.jdnc runs fine infinite loop
masterDetail.jdnc pipeline error same
treeTable.jdnc runs fine infinite loop
[/code]
Judging from these results, the pipeline error was introduced before we had the nighly build system. The JNTreeTable error was introduced sometime in Sept. We can probably determine when it was introduced by checking the nighly builds at:

http://jdnc/cc/buildresults/jdnc (Sun internal url)

--Mark

>
> Mark Davidson wrote:
>
>> Amy,
>>
>> I'm investigating this issue:
>>
>> https://jdnc.dev.java.net/issues/show_bug.cgi?id=102
>>
>> This seems to effect the tree table demos.
>>
>> The JXTreeTable interactive tests executes correctly but the JNTable
>> interactive tests does not:
>>
>> $ cd JDNC_ROOT/jdnc_api/make
>> $ ant run -Drun.class=org.jdesktop.jdnc.JNTreeTableUnitTest
>>
>> run:
>> Exception in thread "main" java.lang.IllegalArgumentException: model
>> already bound
>> at org.jdesktop.swing.JXTreeTable.setModel(JXTreeTable.java:413)
>> at org.jdesktop.jdnc.JNTable.setModel(JNTable.java:177)
>> at org.jdesktop.jdnc.JNTable.(JNTable.java:145)
>> at org.jdesktop.jdnc.JNTreeTable.(JNTreeTable.java:44)
>> at
>> org.jdesktop.jdnc.JNTreeTableUnitTest$1.define(JNTreeTableUnitTest.java:84)
>>
>> at
>> org.jdesktop.jdnc.JNTreeTableUnitTest$TestCase.(JNTreeTableUnitTest.java:121)
>>
>> at
>> org.jdesktop.jdnc.JNTreeTableUnitTest$1.(JNTreeTableUnitTest.java:79)
>>
>> at
>> org.jdesktop.jdnc.JNTreeTableUnitTest.createTestCases(JNTreeTableUnitTest.java:77)
>>
>> at
>> org.jdesktop.jdnc.JNTreeTableUnitTest.main(JNTreeTableUnitTest.java:52)
>>
>> I was wondering if you have any insight into this.
>>
>> I'm going to do a thorough investigation into this on Tuesday.
>>
>> Thanks,
>>
>> --Mark