Return-Path: Delivered-To: apmail-openjpa-dev-archive@www.apache.org Received: (qmail 89119 invoked from network); 30 Apr 2008 15:08:08 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 30 Apr 2008 15:08:08 -0000 Received: (qmail 46945 invoked by uid 500); 30 Apr 2008 15:08:08 -0000 Delivered-To: apmail-openjpa-dev-archive@openjpa.apache.org Received: (qmail 46908 invoked by uid 500); 30 Apr 2008 15:08:08 -0000 Mailing-List: contact dev-help@openjpa.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@openjpa.apache.org Delivered-To: mailing list dev@openjpa.apache.org Received: (qmail 46865 invoked by uid 99); 30 Apr 2008 15:08:08 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 30 Apr 2008 08:08:08 -0700 X-ASF-Spam-Status: No, hits=-2.2 required=10.0 tests=MIME_QP_LONG_LINE,RCVD_IN_DNSWL_MED,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: local policy) Received: from [193.109.254.147] (HELO mail27.messagelabs.com) (193.109.254.147) by apache.org (qpsmtpd/0.29) with SMTP; Wed, 30 Apr 2008 15:07:15 +0000 X-VirusChecked: Checked X-Env-Sender: mvorburger@odyssey-group.com X-Msg-Ref: server-9.tower-27.messagelabs.com!1209568053!54068590!3 X-StarScan-Version: 5.5.12.14.2; banners=odyssey-group.com,-,- X-Originating-IP: [195.80.235.201] Received: (qmail 9147 invoked from network); 30 Apr 2008 15:07:35 -0000 Received: from unknown (HELO mail3.oams.com) (195.80.235.201) by server-9.tower-27.messagelabs.com with SMTP; 30 Apr 2008 15:07:34 -0000 X-MimeOLE: Produced By Microsoft Exchange V6.5 Content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: quoted-printable Subject: NPE at RelationToManyInverseKeyFieldStrategy when using mappedBy inverse Date: Wed, 30 Apr 2008 17:07:26 +0200 Message-ID: <12D996978341E849B21C51CC97F4771DB4115B@mail3.oams.com> X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: NPE at RelationToManyInverseKeyFieldStrategy when using mappedBy inverse Thread-Index: Aciqza0vAvlmE5XmS66z8ylvjJuUvwABfFTw From: "Michael Vorburger" To: , "dev@openjpa.apache.org" <'dev@openjpa.apache.org'> X-Virus-Checked: Checked by ClamAV on apache.org Hello, =20 I'm=20running=20into=20an=20NPE=20in=20RelationToManyInverseKeyFieldStrate= gy (copy/pasted=20below)=20when=20using=20an=20OneToMany=20inverse=20relation= =20with mappedBy=20and=20InheritanceType.TABLE_PER_CLASS=20in=201.1.0-SNAPSHOT... Test=20summary:=20A=20common=20abstract=20superclass=20Translatable=20whic= h=20has=20a @OneToManySet,=20and=20many=20subclasses=20of=20that=20like=20= e.g.=20a SomethingTranslatable,=20and=20many=20more.=20=20The=20idea=20is=20that=20= mapping=20should lead=20to=20a=20Translation=20table=20holding=20the=20items=20for=20Someth= ingTranslatable and=20all=20other=20superclasses.=20=20Then=20SomethingTranslatable=20and=20= many=20other tables=20(no=20physical=20Translatable=20table).=20=20There=20shouldn't=20= be=20a=20join table=20for=20each=20SomethingTranslatable,=20as=20it's=20a=20OneToManySet= ,=20it=20doesn't make=20sense,=20so=20the=20owning=20side=20is=20a=20@ManyToOne=20in=20Tran= slation=20back=20to Translatable.=20=20Granted=20a=20physical=20FK=20will=20not=20be=20possibl= e=20in=20such=20a schema=20-=20accepted,=20but=20it=20should=20still=20be=20possible=20to=20= map=20this?=20=20It works=20until=20I=20use=20@Inheritance(strategy=20=3D InheritanceType.TABLE_PER_CLASS)=20on=20Translatable,=20with=20it=20-=20bo= um,=20NPE. I=20have=20a=20standalone=20example=20(test)=20demonstrating=20this=20that= =20I=20can=20put into=20a=20JIRA=20if=20anybody=20wants=20to=20have=20a=20look=20(it=20does= n't=20make=20it=20through list,=20or=20spam=20filter). Work-around=20may=20be=20to=20use=20a=20an=20InheritanceType.JOINED=20on=20= the Translatable,=20which=20avoids=20the=20NPE=20(tested);=20and=20which=20in=20= this=20exaxmple only=20leads=20to=20a=20basically=20empty=20physical=20Translatable=20(but= =20allows physical=20FK).=20=20In=20the=20real-world=20example=20this=20is=20based=20= on=20though,=20where the=20Translatable=20has=20more=20attributes=20(e.g.=20a=20kind=20of shortDefaultTranslation=20and=20longDefaultTranslation),=20and=20the=20rea= l SomethingTranslatable=20are=20more=20complex,=20this=20leads=20to=20a=20lo= t=20of=20joins across=20a=20table=20hiearchy=20which=20we'd=20like=20to=20avoid. Am=20I=20doing=20something=20wrong?=20=20Not=20possible?=20=20Bug?=20=20Op= en=20a=20JIRA? Thanks=20for=20any=20idea,=20hints,=20things=20to=20try,=20etc.! _____________________________ Michael=20Vorburger,=20Odyssey=20Financial=20Technologies ___ Exception=20in=20thread=20"main"=20java.lang.NullPointerException=20=20at org.apache.openjpa.jdbc.meta.strats.RelationToManyInverseKeyFieldStrateg y.map(RelationToManyInverseKeyFieldStrategy.java:136) =20at org.apache.openjpa.jdbc.meta.strats.RelationCollectionInverseKeyFieldStr ategy.map(RelationCollectionInverseKeyFieldStrategy.java:95) =20at org.apache.openjpa.jdbc.meta.FieldMapping.setStrategy(FieldMapping.java: 120) =20at org.apache.openjpa.jdbc.meta.RuntimeStrategyInstaller.installStrategy(Ru ntimeStrategyInstaller.java:80) =20at org.apache.openjpa.jdbc.meta.FieldMapping.resolveMapping(FieldMapping.ja va:438) =20at org.apache.openjpa.jdbc.meta.FieldMapping.resolve(FieldMapping.java:403) =20at org.apache.openjpa.jdbc.meta.ClassMapping.resolveMapping(ClassMapping.ja va:812) =20at org.apache.openjpa.meta.ClassMetaData.resolve(ClassMetaData.java:1626) =20at org.apache.openjpa.meta.MetaDataRepository.processBuffer(MetaDataReposit ory.java:717) =20at org.apache.openjpa.meta.MetaDataRepository.resolveMapping(MetaDataReposi tory.java:677) =20at org.apache.openjpa.meta.MetaDataRepository.resolve(MetaDataRepository.ja va:555) =20at org.apache.openjpa.meta.MetaDataRepository.getMetaData(MetaDataRepositor y.java:308) =20at org.apache.openjpa.jdbc.meta.MappingRepository.getMapping(MappingReposit ory.java:284) =20at org.apache.openjpa.jdbc.meta.MappingTool.getMapping(MappingTool.java:676 ) =20at org.apache.openjpa.jdbc.meta.MappingTool.buildSchema(MappingTool.java:74 8) =20at=20org.apache.openjpa.jdbc.meta.MappingTool.run(MappingTool.java:646)= =20at=20org.apache.openjpa.jdbc.meta.MappingTool.run(MappingTool.java:1072= ) =20at=20org.apache.openjpa.jdbc.meta.MappingTool.run(MappingTool.java:986)= =20at=20atest.CreateDBTest.synchronizeDatabase(CreateDBTest.java:70) =20at=20atest.CreateDBTest.testCreateDerbyDB(CreateDBTest.java:31) =20at=20atest.CreateDBTest.main(CreateDBTest.java:35) ____________________________________________________________ =95=20This=20email=20and=20any=20files=20transmitted=20with=20it=20are=20C= ONFIDENTIAL=20and=20intended =20=20solely=20for=20the=20use=20of=20the=20individual=20or=20entity=20to=20= which=20they=20are=20addressed. =95=20Any=20unauthorized=20copying,=20disclosure,=20or=20distribution=20of= =20the=20material=20within =20=20this=20email=20is=20strictly=20forbidden. =95=20Any=20views=20or=20opinions=20presented=20within=20this=20e-mail=20a= re=20solely=20those=20of=20the =20=20author=20and=20do=20not=20necessarily=20represent=20those=20of=20Ody= ssey=20Financial Technologies=20SA=20unless=20otherwise=20specifically=20stated. =95=20An=20electronic=20message=20is=20not=20binding=20on=20its=20sender.=20= Any=20message=20referring=20to =20=20a=20binding=20engagement=20must=20be=20confirmed=20in=20writing=20an= d=20duly=20signed. =95=20If=20you=20have=20received=20this=20email=20in=20error,=20please=20n= otify=20the=20sender=20immediately =20=20and=20delete=20the=20original.