You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@openjpa.apache.org by Michael Dick <mi...@gmail.com> on 2008/11/12 17:07:57 UTC

Re: svn commit: r713374 - /openjpa/sandboxes/osgi/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/PersistenceProviderImpl.java

Will the change below result in a security exception? We might want to use
AccessController.doPrivileged(J2DoPrivHelper.getClassLoaderAction(PersistenceProviderImpl.class)));
instead.

I'm not sure it's really required but it caught my eye.

-mike

On Wed, Nov 12, 2008 at 8:09 AM, <kw...@apache.org> wrote:

> Author: kwsutter
> Date: Wed Nov 12 06:09:29 2008
> New Revision: 713374
>
> URL: http://svn.apache.org/viewvc?rev=713374&view=rev
> Log:
> OPENJPA-767.  Change which classloader gets used for loading the OpenJPA
> runtime classes in a container environment.  Previous to this change, we
> were using the classloader provided to us via the PersistenceUnitInfo.  But,
> this wasn't sufficient in an OSGi-container environment.  Initial tests show
> that using the classloader of the PersistenceProviderImpl is working
> better...  More testing and experimentation required...
>
> Modified:
>
>  openjpa/sandboxes/osgi/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/PersistenceProviderImpl.java
>
> Modified:
> openjpa/sandboxes/osgi/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/PersistenceProviderImpl.java
> URL:
> http://svn.apache.org/viewvc/openjpa/sandboxes/osgi/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/PersistenceProviderImpl.java?rev=713374&r1=713373&r2=713374&view=diff
>
> ==============================================================================
> ---
> openjpa/sandboxes/osgi/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/PersistenceProviderImpl.java
> (original)
> +++
> openjpa/sandboxes/osgi/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/PersistenceProviderImpl.java
> Wed Nov 12 06:09:29 2008
> @@ -140,7 +140,7 @@
>             }
>
>             BrokerFactory factory = getBrokerFactory(cp, poolValue,
> -                pui.getClassLoader());
> +                    PersistenceProviderImpl.class.getClassLoader());
>             if (transformerException != null) {
>                 Log log = factory.getConfiguration().getLog(
>                     OpenJPAConfiguration.LOG_RUNTIME);
>
>
>

Re: svn commit: r713374 - /openjpa/sandboxes/osgi/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/PersistenceProviderImpl.java

Posted by Kevin Sutter <kw...@gmail.com>.
No, it's not needed in this case.  Since we're just getting access to the
classloader for the Class that we're currently executing (ie.
PersistenceProviderImpl in this case), then just doing a standard
getClassLoader() invocation is acceptable.  We've followed this practice in
other areas of the OpenJPA code.

Kevin

On Wed, Nov 12, 2008 at 10:07 AM, Michael Dick <mi...@gmail.com>wrote:

> Will the change below result in a security exception? We might want to use
>
> AccessController.doPrivileged(J2DoPrivHelper.getClassLoaderAction(PersistenceProviderImpl.class)));
> instead.
>
> I'm not sure it's really required but it caught my eye.
>
> -mike
>
> On Wed, Nov 12, 2008 at 8:09 AM, <kw...@apache.org> wrote:
>
> > Author: kwsutter
> > Date: Wed Nov 12 06:09:29 2008
> > New Revision: 713374
> >
> > URL: http://svn.apache.org/viewvc?rev=713374&view=rev
> > Log:
> > OPENJPA-767.  Change which classloader gets used for loading the OpenJPA
> > runtime classes in a container environment.  Previous to this change, we
> > were using the classloader provided to us via the PersistenceUnitInfo.
>  But,
> > this wasn't sufficient in an OSGi-container environment.  Initial tests
> show
> > that using the classloader of the PersistenceProviderImpl is working
> > better...  More testing and experimentation required...
> >
> > Modified:
> >
> >
>  openjpa/sandboxes/osgi/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/PersistenceProviderImpl.java
> >
> > Modified:
> >
> openjpa/sandboxes/osgi/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/PersistenceProviderImpl.java
> > URL:
> >
> http://svn.apache.org/viewvc/openjpa/sandboxes/osgi/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/PersistenceProviderImpl.java?rev=713374&r1=713373&r2=713374&view=diff
> >
> >
> ==============================================================================
> > ---
> >
> openjpa/sandboxes/osgi/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/PersistenceProviderImpl.java
> > (original)
> > +++
> >
> openjpa/sandboxes/osgi/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/PersistenceProviderImpl.java
> > Wed Nov 12 06:09:29 2008
> > @@ -140,7 +140,7 @@
> >             }
> >
> >             BrokerFactory factory = getBrokerFactory(cp, poolValue,
> > -                pui.getClassLoader());
> > +                    PersistenceProviderImpl.class.getClassLoader());
> >             if (transformerException != null) {
> >                 Log log = factory.getConfiguration().getLog(
> >                     OpenJPAConfiguration.LOG_RUNTIME);
> >
> >
> >
>