Hi David,

I'm sure some Spring users monitor this email list, but you might get better
hits on one of the Spring centric lists. It looks like the error originates
in Spring, not OpenJPA.

It's worth checking your compiled classes to make sure they're enhanced
though. Do you have any simple junit style tests (no Spring involved) that
use the entities? If you have runtimeUnenhancedClasses=unsupported and the
entities work in junit then you know they've been enhanced correctly at
build time.

If they aren't enhanced maybe running the enhancer (again?) will help with
the loadtime agent issue..

-mike


On Sun, Jan 31, 2010 at 3:49 PM, KARR, DAVID (ATTCINW) <[email protected]>wrote:

> > -----Original Message-----
> > From: KARR, DAVID (ATTCINW)
> > Sent: Sunday, January 31, 2010 12:30 PM
> > To: [email protected]
> > Subject: RE: Changing to use log4j logging causes error about missing
> > Java agent
> >
> > > -----Original Message-----
> > > From: KARR, DAVID (ATTCINW)
> > > Sent: Sunday, January 31, 2010 12:17 PM
> > > To: [email protected]
> > > Subject: Changing to use log4j logging causes error about missing
> > Java
> > > agent
> > >
> > > I've been working ok with my OpenJPA 1.2.2 app for a while.  I'm
> > using
> > > build-time enhancement, and "openjpa.RuntimeUnenhancedClasses" is
> set
> > > to
> > > "unsupported".  I had my "openjpa.Log" property set with the "basic"
> > > strategy, not using log4j or commons-logging.  It was working fine.
> > I
> > > then decided since I was using log4j with other components, I wanted
> > > openjpa to use that also.  I changed the value to "log4j", then
> added
> > a
> > > "logger" element in my log4j.xml for openjpa.  I started up the
> > server,
> > > and got the exception that follows this.
> > >
> > > I don't see why it suddenly thinks I need to use a -javaagent.  I'd
> > > prefer not to do this.  I certainly don't need "load-time class
> > > transformation", if that's what the build-time enhancer does.
> >
> > Additional information:
> >
> > It appears it isn't just happening when I try to use log4j.  If I have
> > any "openjpa.Log" setting that enables logging, I get this error.  If
> I
> > turn off logging completely, the app starts up and works fine.
> >
> > I had logging on all the time when I was developing the app with
> > OpenJPA
> > 1.2.1.  I recently upgraded to 1.2.2, and about that time I turned off
> > logging.  It seems like now that I'm using 1.2.2, I'm getting this new
> > error if I try to use logging.
>
> I just tried backing up to 1.2.1, and I'm still getting the error.
>
> After I went back to 1.2.2, I managed to find a very trivial change that
> causes the error to occur.  Changing it back makes it stop.  The change
> appears to have something to do with the interaction with Spring, but
> it's part of the OpenJPA integration with it.
>
> I have the following bean defined in my Spring context:
>
>    <bean id="catalogEntityManagerFactory"
>
> class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBea
> n"
>          p:dataSource-ref="catalogDataSource">
>        <property name="loadTimeWeaver">
>            <bean
> class="org.springframework.instrument.classloading.InstrumentationLoadTi
> meWeaver" />
>        </property>
>        <property name="jpaVendorAdapter">
>            <bean
> class="org.springframework.orm.jpa.vendor.OpenJpaVendorAdapter"
>                  p:showSql="${jpa.showSql}"/>
>        </property>
>    </bean>
>
> In my properties file, I have a property setting for "jpa.showSql".  In
> the current state of the application, if I have that property set to
> "true" in the properties file, the application deploys and runs fine,
> and is showing the SQL output.
>
> If I instead set that property to "false", I get the "javaagent"
> exception at load time.
>
> I currently have no explicit setting for "openjpa.Log".
>
> I noticed the following block of code in "OpenJpaVendorAdapter":
>
> /*  77 */     if (isShowSql())
> /*     */     {
> /*  79 */       jpaProperties.setProperty("openjpa.Log",
> "DefaultLevel=WARN, Runtime=INFO, Tool=INFO, SQL=TRACE");
> /*     */     }
>
> So, I decided to set an initial "benign" value for "openjpa.Log"
> explicitly (similar to this code block).  Now I'm back to not getting
> the error.  I presently don't have a log4j appender that matches
> openjpa, and my "openjpa.Log" isn't set to "log4j".  it appears that any
> logging strategy I use that results in either no value being set for
> "openjpa.Log" or a value of "log4j", gives me that "javaagent"
> exception.
>
> I am mystified.
>

Reply via email to