On 2/8/12 10:21 , Aaron Whiteside wrote:
Nudge nudge.. :)

Ok, I tried to recreate your issue given your instructions, but I didn't experience the same exception. Perhaps it is something peculiar in your setup.

If you can ever figure out how to recreate it for certain, please let me know.

-> richard


Regards,
Aaron Whiteside

-----Original Message-----
From: Richard S. Hall [mailto:[email protected]]
Sent: Thursday, January 26, 2012 6:05 PM
To: [email protected]
Subject: Re: NPE in BundleWiringImpl

Good details. Thanks. I'll try to look into it, but don't know exactly
when I can get to it...feel free to bug me nicely when you get
impatient. :-)

->  richard

On 1/26/12 17:52, Aaron Whiteside wrote:
Step 1, Download glassfish:

http://dlc.sun.com.edgesuite.net/glassfish/3.1.2/promoted/glassfish-3.1.2-b19-unix.sh
or if you’re not on any sort of unix, choose your own platform..
http://dlc.sun.com.edgesuite.net/glassfish/3.1.2/promoted/


Step 2, Install Glassfish:
Nothing fancy here, just run the script/installer with default options etc. (my 
$JAVA_HOME is set to jdk 1.7.0_01, the installer will use/inherit that in the 
config for glassfish)

The installer will ask you to create a domain, just choose the defaults.


Step 3, Download Gemini JPA:
http://www.eclipse.org/downloads/download.php?file=/gemini/jpa/r1.0/gemini-jpa-1.0.0.RELEASE.zip

Copy the file org.eclipse.gemini.jpa_1.0.0.RELEASE.jar from the download zip 
into<GF_HOME>/glassfish/domains/domain1/autodeploy/bundles

Domain1 is the default name of the domain the installer will create, if you 
don't choose to change it when asked.


Step 4, Start the domain:

The default option for the installer is to auto start the domain after it's 
been created, so it should be already running.

But in case you need to stop and start it for whatever reason the following 
commands will serve you well:

#<GF_HOME>/bin/asadmin stop-domain
#<GF_HOME>/bin/asadmin start-domain


Step 5, Configure DataSource:

In my setup I use MySQL, and I am assuming you know how to set that up... if 
not let me know. (I had other issues with the built-in/embedded Derby 
driver/db) I also created a blank database called osgi_example (referenced 
later in the db pool config).

Download the MySQL JDBC driver from: 
http://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.18.zip/from/http://mysql.mirrors.hoobly.com/

And place the mysql-connector-java-5.1.18-bin.jar file 
under<GF_HOME>/glassfish/domains/domain1/lib.

Oh and restart (stop, start) the domain now!

Go to http://localhost:4848/ and login using the username and password 
specified during installation. The username by default is admin.

1. From the left hand side, Resources ->   JDBC ->   JDBC Connection Pools
2. Click New
2.5. Name: OSGiExample
3. Resource Type javax.sql.ConnectionPoolDataSource
4. Select MySQL from list of databases
5. Click Next
6. Delete all the silly properties it gives you and enter these:
User:<mysql username here>
Password: secret
ServerName: localhost
DatabaseName: osgi_example
7. Click save
8. Click Ping to test...

9. the left hand side, Resources ->   JDBC ->   JDBC Resources
10. Click new
11. JNDI name: jdbc/osgi-example
12. Select our OSGiExample pool.
13. Click save.

14.. I think that’s it.


Step 6, Deploy my entity bundle:

Copy my entity bundle (will email that directly to you) 
to<GF_HOME>/glassfish/domains/domain1/autodeploy/bundles


Step 7, Observe error under:

<GF_HOME>/glassfish/domains/domain1/logs/server.log

You'll have to put up with the horrible glassfish logging format... my 
apologies...


Step 8, Profit!

Regards,
Aaron Whiteside


-----Original Message-----
From: Richard S. Hall [mailto:[email protected]]
Sent: Thursday, January 26, 2012 5:21 PM
To: [email protected]
Subject: Re: NPE in BundleWiringImpl

No attachments to the list, so you can just send to me personally...

However, you'll need to give me more detailed steps to reproduce than
what you have below, because I don't use any of that stuff, so I have no
idea what you are talking about...steps to reproduce should include the
artifacts necessary (or URLs to get them) as well as the set of steps to
reproduce the error...it might come as a surprise, but I rarely create
or use any bundles, my life as been stuck in the framework for the past
11 years. ;-)

->   richard

On 1/26/12 14:34, Aaron Whiteside wrote:
Just checked the version in the Glassfish's bundled felix.jar and it is 4.0.2.

It is reproducible.. I have Gemini JPA deployed and are deploying my own JPA 
bundle.

Attached is my persistence.xml. You would have to create the datasource in 
glassfish. And you can use empty entities or I suspect different entity classes.

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0"
                xmlns="http://java.sun.com/xml/ns/persistence";
                xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
                xsi:schemaLocation="http://java.sun.com/xml/ns/persistence 
http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd";>

       <persistence-unit name="osgi-example" transaction-type="JTA">
           <jta-data-source>jdbc/osgi-example</jta-data-source>

           <class>com.mm.osgiexample.entity.User</class>
           <class>com.mm.osgiexample.entity.Group</class>

           <exclude-unlisted-classes>true</exclude-unlisted-classes>

           <properties>
               <property name="eclipselink.target-database" value="MySQL"/>

               <!--<property name="eclipselink.logging.level" 
value="FINEST"/>-->
               <property name="eclipselink.logging.exceptions" value="true"/>

               <!-- turn off DDL generation after the model is stable -->
               <property name="eclipselink.ddl-generation" 
value="drop-and-create-tables"/>
               <property name="eclipselink.ddl-generation.output-mode" 
value="both"/>
               <property name="eclipselink.ddl.default-table-suffix" 
value="engine=InnoDB"/>
               <property name="eclipselink.weaving" value="false"/>
           </properties>

       </persistence-unit>

</persistence>


Can I send attachments to the mailing list? If so I'll just send the sample 
bundle.

Regards,
Aaron Whiteside
Director of Technical Architecture
MOBILEMESSENGER


-----Original Message-----
From: Richard S. Hall [mailto:[email protected]]
Sent: Thursday, January 26, 2012 12:54 PM
To: [email protected]
Subject: Re: NPE in BundleWiringImpl

First things first, if you are running 4.0.1, you should try with 4.0.2
since that addressed some NPE situations in the resolver due to
refactoring that occurred in 4.0.0. To use it with GF you should just be
able to copy the 4.0.2 felix.jar file over the existing felix.jar file.

If that doesn't resolve the issue and if it is easily repeatable, then
please describe the precise set of steps to reproduce and I can try to
look into it.

->    richard

On 1/26/12 12:02, Aaron Whiteside wrote:
Thought I might let the felix guys know about this...

http://www.eclipse.org/forums/index.php/m/783881/#msg_783881


Running in Glassfish 3.1.2-b19 (Felix 4.0.1 I think..)

Stacktrace below..

[#|2012-01-26T11:37:55.594-0500|INFO|glassfish3.1.2|javax.enterprise.system.std.com.sun.enterprise.server.logging|_ThreadID=81;_ThreadName=Thread-2;|[EL
 Severe]: 2012-01-26 11:37:55.594--ServerSession(1197114060)--Local Exception 
Stack:
Exception [EclipseLink-7060] (Eclipse Persistence Services - 
2.3.2.v20111125-r10461): org.eclipse.persistence.exceptions.ValidationException
Exception Description: Cannot acquire data source [jdbc/osgi-example].
Internal Exception: javax.naming.NamingException: Lookup failed for 
'jdbc/osgi-example' in 
SerialContext[myEnv={java.naming.factory.state=com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl,
 java.naming.factory.url.pkgs=com.sun.enterprise.naming} [Root exception is 
javax.naming.NamingException: Unable to lookup resource : jdbc/osgi-example 
[Root exception is javax.naming.CommunicationException: Communication exception 
for 
SerialContext[myEnv={java.naming.factory.state=com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl,
 java.naming.factory.url.pkgs=com.sun.enterprise.naming} [Root exception is 
java.lang.NullPointerException]]]
at 
org.eclipse.persistence.exceptions.ValidationException.cannotAcquireDataSource(ValidationException.java:497)
at 
org.eclipse.persistence.sessions.JNDIConnector.connect(JNDIConnector.java:109)
at 
org.eclipse.persistence.sessions.DatasourceLogin.connectToDatasource(DatasourceLogin.java:162)
at 
org.eclipse.persistence.internal.databaseaccess.DatasourceAccessor.connectInternal(DatasourceAccessor.java:330)
at 
org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.connectInternal(DatabaseAccessor.java:293)
at 
org.eclipse.persistence.internal.databaseaccess.DatasourceAccessor.connect(DatasourceAccessor.java:418)
at 
org.eclipse.persistence.sessions.server.ConnectionPool.buildConnection(ConnectionPool.java:216)
at 
org.eclipse.persistence.sessions.server.ExternalConnectionPool.startUp(ExternalConnectionPool.java:146)
at 
org.eclipse.persistence.sessions.server.ServerSession.connect(ServerSession.java:484)
at 
org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.login(DatabaseSessionImpl.java:633)
at 
org.eclipse.persistence.internal.jpa.EntityManagerFactoryProvider.login(EntityManagerFactoryProvider.java:208)
at 
org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.deploy(EntityManagerSetupImpl.java:488)
at 
org.eclipse.persistence.internal.jpa.EntityManagerFactoryDelegate.getDatabaseSession(EntityManagerFactoryDelegate.java:188)
at 
org.eclipse.persistence.internal.jpa.EntityManagerFactoryDelegate.createEntityManagerImpl(EntityManagerFactoryDelegate.java:277)
at 
org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManagerImpl(EntityManagerFactoryImpl.java:294)
at 
org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:272)
at 
com.mm.osgiexample.OSGiEntityManagerFactoryFactory.create(OSGiEntityManagerFactoryFactory.java:32)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at 
org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:145)
at 
org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:570)
at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:982)
at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:878)
at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:484)
at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:455)
at 
org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:293)
at 
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
at 
org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:290)
at 
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:192)
at 
org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:585)
at 
org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:895)
at 
org.eclipse.gemini.blueprint.context.support.AbstractDelegatedExecutionApplicationContext.access$1600(AbstractDelegatedExecutionApplicationContext.java:60)
at 
org.eclipse.gemini.blueprint.context.support.AbstractDelegatedExecutionApplicationContext$4.run(AbstractDelegatedExecutionApplicationContext.java:325)
at 
org.eclipse.gemini.blueprint.util.internal.PrivilegedUtils.executeWithCustomTCCL(PrivilegedUtils.java:85)
at 
org.eclipse.gemini.blueprint.context.support.AbstractDelegatedExecutionApplicationContext.completeRefresh(AbstractDelegatedExecutionApplicationContext.java:290)
at 
org.eclipse.gemini.blueprint.extender.internal.dependencies.startup.DependencyWaiterApplicationContextExecutor$CompleteRefreshTask.run(DependencyWaiterApplicationContextExecutor.java:137)
at java.lang.Thread.run(Thread.java:722)
Caused by: javax.naming.NamingException: Lookup failed for 'jdbc/osgi-example' 
in 
SerialContext[myEnv={java.naming.factory.state=com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl,
 java.naming.factory.url.pkgs=com.sun.enterprise.naming} [Root exception is 
javax.naming.NamingException: Unable to lookup resource : jdbc/osgi-example 
[Root exception is javax.naming.CommunicationException: Communication exception 
for 
SerialContext[myEnv={java.naming.factory.state=com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl,
 java.naming.factory.url.pkgs=com.sun.enterprise.naming} [Root exception is 
java.lang.NullPointerException]]]
at com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:518)
at com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:455)
at com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:654)
at javax.naming.InitialContext.lookup(InitialContext.java:415)
at javax.naming.InitialContext.lookup(InitialContext.java:415)
at 
org.eclipse.persistence.sessions.JNDIConnector.connect(JNDIConnector.java:103)
... 37 more
Caused by: javax.naming.NamingException: Unable to lookup resource : 
jdbc/osgi-example [Root exception is javax.naming.CommunicationException: 
Communication exception for 
SerialContext[myEnv={java.naming.factory.state=com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl,
 java.naming.factory.url.pkgs=com.sun.enterprise.naming} [Root exception is 
java.lang.NullPointerException]]
at 
org.glassfish.javaee.services.ResourceProxy.throwResourceNotFoundException(ResourceProxy.java:119)
at org.glassfish.javaee.services.ResourceProxy.create(ResourceProxy.java:95)
at com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:507)
... 42 more
Caused by: javax.naming.CommunicationException: Communication exception for 
SerialContext[myEnv={java.naming.factory.state=com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl,
 java.naming.factory.url.pkgs=com.sun.enterprise.naming} [Root exception is 
java.lang.NullPointerException]
at com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:542)
at com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:455)
at javax.naming.InitialContext.lookup(InitialContext.java:411)
at javax.naming.InitialContext.lookup(InitialContext.java:411)
at 
com.sun.appserv.connectors.internal.api.ResourceNamingService.lookup(ResourceNamingService.java:221)
at org.glassfish.javaee.services.ResourceProxy.create(ResourceProxy.java:93)
... 43 more
Caused by: java.lang.NullPointerException
at 
org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1432)
at 
org.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringImpl.java:72)
at 
org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1843)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at com.sun.naming.internal.VersionHelper12.loadClass(VersionHelper12.java:63)
at 
javax.naming.spi.NamingManager.getObjectFactoryFromReference(NamingManager.java:146)
at javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:319)
at 
com.sun.enterprise.naming.impl.SerialContext.getObjectInstance(SerialContext.java:556)
at com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:514)
... 48 more
|#]

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to