Marc, On 3/13/07, Marc Prud'hommeaux <[EMAIL PROTECTED]> wrote:
Kevin- I don't think we've done extensive stand-alone testing with security enabled, but we have people using OpenJPA in so many different exotic containers with their attendant security settings, that I'd be a little surprised if there were essential doPriv checks that were missing.
I agree. This is kind of convoluted environment. We have WebSphere 6.1with Spring (not sure of the version) and OpenJPA 0.9.7 nightly. The fact that it is an intermittent NPE from
"java.io.Win32CanonicalPathComponentRetriever" gives me a little pause. Which JVM did you test on?
Maybe intermittent isn't the right word. It's really where we run into the problem on one machine and not another. But, the visual inspection indicates that the environments are the same. The current testing is with the IBM JDK 5.0 SR3. We will also check out the latest SR4 and the Sun JDK to see if the results change. Also, it'd be nice to figure out what that file name being passed to
File.exists() is. A println on the file name in URLMetaDataIterator.getFile() might show that it is a string with such crazy characters that it triggers some other bug with Windows file handing.
Good idea. I was assuming that it was a standard file (ie. persistence.xml). Let me try that as well. Kevin On Mar 13, 2007, at 5:55 AM, Kevin Sutter wrote:
> Just curious, > Has there been any testing with Java 2 Security enabled and > OpenJPA? I'm > hitting a semi-intermittent problem (it doesn't seem to show up on all > machines) which results in an NPE coming out of the > javax.persistence.Persistence.createEntityManager method. I know > we have no > control over this specific piece of code, but I'm wondering whether > we need > some doPriv blocks elsewhere in the code path. I reviewed the JIRA > Issues > and didn't see anything related to this. Before I go further, I > thought I > would check to see if there's been any other experiences with Java 2 > Security. Thanks. > > Kevin > > P.S. Here's the call stack if you are interested... > > Caused by: java.lang.NullPointerException > at java.io.Win32CanonicalPathComponentRetriever.nextComponent( > Win32CanonicalPath.java:318) > at java.io.Win32CanonicalPath.equals(Win32CanonicalPath.java:117) > at java.io.FilePermission.impliesIgnoreMask(FilePermission.java: > 373) > at java.io.FilePermissionCollection.implies(FilePermission.java: > 763) > at > org.eclipse.osgi.framework.internal.core.ConditionalPermissionSet.impl > ies( > ConditionalPermissionSet.java:224) > at > org.eclipse.osgi.framework.internal.core.BundleCombinedPermissions.imp > lies( > BundleCombinedPermissions.java:124) > at java.security.ProtectionDomain.implies(ProtectionDomain.java: > 225) > at java.security.AccessController.checkPermission > (AccessController.java > :94) > at java.lang.SecurityManager.checkPermission > (SecurityManager.java:547) > at com.ibm.ws.security.core.SecurityManager.checkPermission( > SecurityManager.java:189) > at java.lang.SecurityManager.checkRead(SecurityManager.java:886) > at java.io.File.exists(File.java:726) > at org.apache.openjpa.lib.meta.URLMetaDataIterator.getFile( > URLMetaDataIterator.java:68) > at org.apache.openjpa.lib.meta.XMLMetaDataParser.parse( > XMLMetaDataParser.java:311) > at org.apache.openjpa.lib.meta.XMLMetaDataParser.parse( > XMLMetaDataParser.java:289) > at org.apache.openjpa.lib.meta.XMLMetaDataParser.parse( > XMLMetaDataParser.java:263) > at > org.apache.openjpa.persistence.PersistenceProductDerivation > $ConfigurationParser.parse > (PersistenceProductDerivation.java:419) > at > org.apache.openjpa.persistence.PersistenceProductDerivation.parseResou > rces( > PersistenceProductDerivation.java:287) > at > org.apache.openjpa.persistence.PersistenceProductDerivation.load( > PersistenceProductDerivation.java:254) > at > org.apache.openjpa.persistence.PersistenceProductDerivation.load( > PersistenceProductDerivation.java:152) > at > org.apache.openjpa.persistence.PersistenceProviderImpl.createEntityMan > agerFactory > (PersistenceProviderImpl.java:66) > at > org.apache.openjpa.persistence.PersistenceProviderImpl.createEntityMan > agerFactory > (PersistenceProviderImpl.java:78) > at javax.persistence.Persistence.createEntityManagerFactory( > Persistence.java:83) > at javax.persistence.Persistence.createEntityManagerFactory( > Persistence.java:60)