jackrabbit-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jack Park <jack.p...@sri.com>
Subject Re: Battling 'no matching property definition found for {}InstanceOf'
Date Sun, 07 May 2006 16:49:02 GMT
Hi Toby,

Modern development strategies, like paired programming, rock!. I chose 
answering your question as being in a "paired" situation. Whilst I was 
composing a giant  reply, explaining in detail precisely what I was 
doing, I found the bug!. Well, the hints came before in earlier comments 
here. I was missing a second propertyType definition in one of my node 
definitions. Fixed that, and my unit test ran just fine.

Many thanks for this opportunity to step out of the cave and explain things.

Cheers,
Jack

Tobias Bocanegra wrote:

> hi jack,
> your behaviour is weird. maybe you can give us a code example?
> i assume you do something like the following:
>
> Node A = session.getRootNode().addNode("A", "ts:subjectProxy");
> Node C = A.addNode("C", "ts:subjectProxy");
> C.setProperty("p1", "foo");
> C.setProperty("p2", "bar");
> C.setProperty("m1", new String[]{"1", "2", "3"}");
>
> and you are saying that the last setProperty does not work?
>
> regards, toby
>
> On 5/7/06, Jack Park <jack.park@sri.com> wrote:
>
>> I just ran a test in which I used the simplest possible node type
>> definition:
>>     <nodeType name="ts:subjectProxy" isMixin="false"
>>                                      hasOrderableChildNodes="false"
>>                                      primaryItemName="">
>>         <supertypes>
>>             <supertype>nt:unstructured</supertype>
>>             <supertype>mix:referenceable</supertype>
>>         </supertypes>
>>     </nodeType>
>>
>> Basically, it is just nt:unstructured with a mix:referenceable thrown in
>> because I need that ability.
>> I still run into the exception mentioned in the subject line, but not at
>> the same place. I am now well past that place in code execution. At risk
>> of boring some, let me sketch the nature of what is happening just when
>> the Exception is thrown.
>>
>> There exists a Node (A) to which I have added a child Node (C).  I used
>> C as an "InstanceOf"  B (another Node that is a child of A).
>>
>> So, C now contains  the InstanceOf property, a single-value property.
>>
>> Then, I add another property to C, a single (String) value'd property
>> called 'NameProperty';
>> Ok to this point.
>> Next, I wish to add a multi-valued property to C. That's when the
>> exception 'no matching property definition...' occurs.
>>
>> I have added two single-valued properties to C, and, in the process of
>> adding a multi-valued property to C, someone hits the OhDang button and
>> jackrabbit stops playing.
>>
>> Recapping the design, My nodes all are of the type sketched above,
>> meaning they are essentially of type nt:unstructured, which, as Toby
>> points out here, have the ability to accept both single and multi-valued
>> properties.
>>
>> I politely (in great despiration ;) ask again. What am I missing here?
>> (It's bound to be something really trivial :( but I don't yet see it.
>>
>> Many thanks.
>> Jack
>> Tobias Bocanegra wrote:
>>
>> > you're defining a multivalue-residual property but i think you want to
>> > set a single-value property. if you need both, you can look at
>> > nt:unstructured for an example.
>> >
>> > btw: if you know the names of the properties, i would make sense to
>> > restrict the names and types aswell.
>> >
>> > regards, toby
>> >
>> > On 5/6/06, Jack Park <jack.park@sri.com> wrote:
>> >
>> >> I hope there is some trivial line of wisdom  I am missing, but the 
>> 'no
>> >> matching property definition' exception keeps creeping in on me. 
>> Brief
>> >> architectural explanation: I wish to model a taxonomy using Property
>> >> objects of two kinds, one of which stores a single String (uuid of a
>> >> Node), and another of which is a Value[] taking Value objects with 
>> uuids
>> >> of Nodes. Actually, there are up to 4 such Property objects per node,
>> >> each a different name: InstanceOf, HasInstances, SubclassOf,
>> >> HasSubclasses, where InstanceOf is the only single-valued Property.
>> >>
>> >> Oddly enough, SubclassOf and HasSubclasses are already in Node 
>> objects
>> >> when the InstanceOf Property is created and the exception tossed.
>> >>
>> >> The particular Node definition is below. I'd really like to learn 
>> what
>> >> I  am missing here.
>> >>
>> >> Many thanks in advance.
>> >> Jack
>> >>
>> >>     <nodeType name="ts:subjectProxy" isMixin="false"
>> >>                                      hasOrderableChildNodes="false"
>> >>                                      primaryItemName="">
>> >>         <supertypes>
>> >>             <supertype>nt:hierarchyNode</supertype>
>> >>             <supertype>mix:referenceable</supertype>
>> >>         </supertypes>
>> >>
>> >>         <propertyDefinition name="*"
>> >>                             requiredType="undefined"
>> >>                             autoCreated="false"
>> >>                             mandatory="false"
>> >>                             onParentVersion="COPY"
>> >>                             protected="false"
>> >>                             multiple="true"/>
>> >>
>> >>         <childNodeDefinition name="*"
>> >>                              defaultPrimaryType=""
>> >>                              autoCreated="false"
>> >>                              mandatory="false"
>> >>                              onParentVersion="COPY"
>> >>                              protected="false"
>> >>                              sameNameSiblings="true">
>> >>             <requiredPrimaryTypes>
>> >>
>> >> <requiredPrimaryType>nt:hierarchyNode</requiredPrimaryType>
>> >>                 <supertype>mix:referenceable</supertype>
>> >>             </requiredPrimaryTypes>
>> >>         </childNodeDefinition>
>> >>     </nodeType>
>> >> 
>


Mime
View raw message