On Feb 13, 2007, at 9:59 AM, Craig L Russell wrote:
Hi Dain,
Sounds like a jackpot full of issues here.
On Feb 13, 2007, at 9:17 AM, Dain Sundstrom wrote:
I found the problem. In my entity mappings file, I had a mapping
for a bean that no longer exists. When I comment out that
mapping, the problem goes away. I only fond the problem by
turning the debug level up
The WARN messages should "usually" print. You have to dial *down*
the log level to not see them. What was your log level when WARN
didn't print? Issue #1?
I think it might be ERROR when integrated into OpenEJB. I'll have to
verify and adjust down to WARN so we can see these errors.
(the full log is attached). In the log we do warn that the
class was not found, but we say we are going to ignore it:
299 CMP WARN [main] openjpa.MetaData - The class
"openejb.org.apache.openejb.test.entity.cmr.cmrmapping.OneOwningSideB
ean" listed in the openjpa.MetaDataFactory configuration property
could not be loaded; ignoring.
But later we get a transformation exception due to the missing class:
1243 CMP WARN [main] openjpa.Enhance - An exception was thrown
while attempting to perform class file transformation on
"org.apache.openejb.test.entity.cmp.BasicCmpBean":
<0|false|0.9.7-incubating-SNAPSHOT>
org.apache.openjpa.util.GeneralException:
org.xml.sax.SAXException: file:/Users/dain/work/openejb/trunk/
openejb3/container/openejb-core/target/test-classes/META-INF/jpa-
test-mappings.xml [Location: Line: 45, C: 118]: Type
"openejb.org.apache.openejb.test.entity.cmr.cmrmapping.OneOwningSideB
ean" could not be instantiated.
I think we should either ignore the missing class everywhere or
throw an exception on the first time we notice the missing class
(I prefer the former).
I also prefer ignoring it consistently. But considering that
enhancement fails, this seems like more than a WARN. More like a
SEVERE. And if you get a SEVERE during enhancement, should we
really put the EMF into service at all? Issue #2?
I agree. If we get an enhancement error, I think we should throw an
exception from the EMF consturctor. The problem is that enhancement
seems to happen only as beans are used (loaded into memory), so the
EMF doesn't know that enhancement won't work.
Secondly, are we parsing the XML file multiple times? The only
way for the first warning to be fired is if OpenJPA has read my
entity mappings, but the exception that is thrown later is a SAX
exception which implies that OpenJPA is reading the file again.
Sounds like an inefficient startup algorithm that we should fix.
Issue #3?
:)
-dain