Never mind. The test works because it tests against hsqldb as defined
in classpath:/properties/dataSource.properties.
Tuyhang Ly wrote:
> Eric,
>
> My DBA confirmed that I do have privileges to get meta data on my
> account. So, I'm not sure why is this error happening.
>
> One thing that is puzzling me is that during the step for "Running
> org.jasig.portal.portlet.dao.jpa.JpaPortletEntityDaoTest", the
> updating schema step for these hibernate tables completes
> successfully. I also turned on the "show_sql" property in
> hibernate.cfg.xml (<property name="show_sql">true</property>) and
> captured those SQLs during this test, but still getting the same
> "insufficient privilege" error during the "db" step. Please see the
> attached log file for more details.
>
> I'll test with the trunk next and let you know.
>
> Thanks,
> Tuy.
>
> Eric Dalquist wrote:
>> Tuy,
>>
>> I just committed a set of updates that cleans up the hibernate
>> related database creation code a bit more, I would recommend grabbing
>> the trunk, I make sure the trunk code is always buildable and runable
>> so it should be pretty safe to work with. The link in rdbm.properties
>> for the dialects points to the Hibernate 3.2.5 docs which include the
>> more specific Oracle dialects. Please let me know when you solve your
>> permissions problem so we can make sure others that may run into the
>> error know what to do.
>>
>>
>> -Eric
>>
>> Eric Dalquist wrote:
>>> I have:
>>>
>>> <dependency>
>>> <groupId>com.oracle</groupId>
>>> <artifactId>ojdbc14</artifactId>
>>> <version>10.2.0.3.0</version>
>>> <scope>compile</scope>
>>> </dependency>
>>>
>>> In my uportal-impl/pom.xml
>>>
>>> You need to download the driver from Oracle and use the mvn
>>> install:install-file command to put it in your local repository as
>>> it is proprietary code and does not exist in the central maven repo.
>>> For the full install command add the dependency and run one of the
>>> maven or ant commands and maven will fail if it can't find the JAR
>>> telling you what you need to do to install it.
>>>
>>>
>>> It does look like a permissions error specific to your database
>>> user/schema not being able to get that meta-data about the database.
>>>
>>> -Eric
>>>
>>> Tuyhang Ly wrote:
>>>> I tried to remove the uniqueConstraints, but still getting the same
>>>> error. Based on the stack trace, I think I don't have privileges
>>>> to get the meta data on any table on my schema which is now needed
>>>> because we are using hbm2ddl for these UP_PORTLET* tables. I'm
>>>> waiting for DBA to confirm this details.
>>>>
>>>> [java] Caused by: java.sql.SQLException: ORA-01031:
>>>> insufficient privileges
>>>>
>>>> [java] at
>>>> oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
>>>> [java] at
>>>> oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331)
>>>> [java] at
>>>> oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:288)
>>>> [java] at
>>>> oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:743)
>>>> [java] at
>>>> oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:207)
>>>> [java] at
>>>> oracle.jdbc.driver.T4CStatement.executeForRows(T4CStatement.java:946)
>>>> [java] at
>>>> oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1168)
>>>> [java] at
>>>> oracle.jdbc.driver.OracleStatement.executeUpdateInternal(OracleStatement.java:1614)
>>>> [java] at
>>>> oracle.jdbc.driver.OracleStatement.executeUpdate(OracleStatement.java:1579)
>>>> [java] at
>>>> oracle.jdbc.OracleDatabaseMetaData.getIndexInfo(OracleDatabaseMetaData.java:3485)
>>>> [java] at
>>>> org.hibernate.tool.hbm2ddl.TableMetadata.initIndexes(TableMetadata.java:130)
>>>> [java] at
>>>> org.hibernate.tool.hbm2ddl.TableMetadata.<init>(TableMetadata.java:35)
>>>> [java] at
>>>> org.hibernate.tool.hbm2ddl.DatabaseMetadata.getTableMetadata(DatabaseMetadata.java:90)
>>>>
>>>> One more question, what is the maven2 repository URL for
>>>> ojdbc-14.jar that you are using? I got this warning with my local
>>>> version:
>>>>
>>>> [java] WARN [main] dialect.Oracle9Dialect Jan/17 11:11:17.758
>>>> - The Oracle9Dialect dialect has been deprecated; use either
>>>> Oracle9iDialect or Oracle10gDialect instead
>>>>
>>>> Thanks,
>>>> Tuy.
>>>>
>>>> Eric Dalquist wrote:
>>>>> I mis-spoke. You need to remove the uniqueConstraint (Oracle
>>>>> doesn't support unique constraints on CLOB types)
>>>>>
>>>>> So change the lines:
>>>>> @Table(
>>>>> name = "UP_PORTLET_PREF",
>>>>> uniqueConstraints = @UniqueConstraint(columnNames = {
>>>>> "NAME", "PORTLET_PREF_ID" })
>>>>> )
>>>>>
>>>>> To:
>>>>> @Table(name = "UP_PORTLET_PREF")
>>>>>
>>>>>
>>>>> -Eric
>>>>>
>>>>> Eric Dalquist wrote:
>>>>>> Tuy,
>>>>>>
>>>>>> I just got a chance to test the Hibernate DDL generation against
>>>>>> Oracle and there are a few problems. I'll be patching trunk today
>>>>>> to fix the problem and send a note to this list when its done.
>>>>>>
>>>>>> If you're interested in trying it in your local code open up
>>>>>> PortletPreferenceImpl and delete the index setting in the @Table
>>>>>> annotation.
>>>>>>
>>>>>> -Eric
>>>>>>
>>>>>> Tuyhang Ly wrote:
>>>>>>> Thanks Eric! I'll try that. Here is the full stack trace of
>>>>>>> this error:
>>>>>>>
>>>>>>> ERROR [main] hbm2ddl.SchemaUpdate Jan/16 10:53:41.368 - could
>>>>>>> not complete schema update
>>>>>>> [java] org.hibernate.exception.SQLGrammarException: could
>>>>>>> not get table metadata: UP_PORTLET_PREF_VALUES
>>>>>>> [java] at
>>>>>>> org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:67)
>>>>>>> [java] at
>>>>>>> org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
>>>>>>> [java] at
>>>>>>> org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:29)
>>>>>>> [java] at
>>>>>>> org.hibernate.tool.hbm2ddl.DatabaseMetadata.getTableMetadata(DatabaseMetadata.java:105)
>>>>>>> [java] at
>>>>>>> org.hibernate.cfg.Configuration.generateSchemaUpdateScript(Configuration.java:948)
>>>>>>> [java] at
>>>>>>> org.hibernate.tool.hbm2ddl.SchemaUpdate.execute(SchemaUpdate.java:140)
>>>>>>> [java] at
>>>>>>> org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:314)
>>>>>>> [java] at
>>>>>>> org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1294)
>>>>>>> [java] at
>>>>>>> org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:915)
>>>>>>> [java] at
>>>>>>> org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:730)
>>>>>>> [java] at
>>>>>>> org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory(HibernatePersistence.java:127)
>>>>>>> [java] at
>>>>>>> org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:221)
>>>>>>> [java] at
>>>>>>> org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:251)
>>>>>>> [java] at
>>>>>>> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1390)
>>>>>>> [java] at
>>>>>>> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1359)
>>>>>>> [java] at
>>>>>>> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:540)
>>>>>>> [java] at
>>>>>>> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:485)
>>>>>>> [java] at
>>>>>>> java.security.AccessController.doPrivileged(Native Method)
>>>>>>> [java] at
>>>>>>> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:455)
>>>>>>> [java] at
>>>>>>> org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:251)
>>>>>>> [java] at
>>>>>>> org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:169)
>>>>>>> [java] at
>>>>>>> org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:248)
>>>>>>> [java] at
>>>>>>> org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:170)
>>>>>>> [java] at
>>>>>>> org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:268)
>>>>>>> [java] at
>>>>>>> org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:104)
>>>>>>> [java] at
>>>>>>> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1274)
>>>>>>> [java] at
>>>>>>> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1042)
>>>>>>> [java] at
>>>>>>> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:539)
>>>>>>> [java] at
>>>>>>> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:485)
>>>>>>> [java] at
>>>>>>> java.security.AccessController.doPrivileged(Native Method)
>>>>>>> [java] at
>>>>>>> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:455)
>>>>>>> [java] at
>>>>>>> org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:251)
>>>>>>> [java] at
>>>>>>> org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:169)
>>>>>>> [java] at
>>>>>>> org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:248)
>>>>>>> [java] at
>>>>>>> org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:170)
>>>>>>> [java] at
>>>>>>> org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:268)
>>>>>>> [java] at
>>>>>>> org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:104)
>>>>>>> [java] at
>>>>>>> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1274)
>>>>>>> [java] at
>>>>>>> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1042)
>>>>>>> [java] at
>>>>>>> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:539)
>>>>>>> [java] at
>>>>>>> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:485)
>>>>>>> [java] at
>>>>>>> java.security.AccessController.doPrivileged(Native Method)
>>>>>>> [java] at
>>>>>>> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:455)
>>>>>>> [java] at
>>>>>>> org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveInnerBean(BeanDefinitionValueResolver.java:219)
>>>>>>> [java] at
>>>>>>> org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:122)
>>>>>>> [java] at
>>>>>>> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1274)
>>>>>>> [java] at
>>>>>>> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1042)
>>>>>>> [java] at
>>>>>>> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:539)
>>>>>>> [java] at
>>>>>>> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:485)
>>>>>>> [java] at
>>>>>>> java.security.AccessController.doPrivileged(Native Method)
>>>>>>> [java] at
>>>>>>> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:455)
>>>>>>> [java] at
>>>>>>> org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:251)
>>>>>>> [java] at
>>>>>>> org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:169)
>>>>>>> [java] at
>>>>>>> org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:248)
>>>>>>> [java] at
>>>>>>> org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:170)
>>>>>>> [java] at
>>>>>>> org.springframework.aop.framework.autoproxy.BeanFactoryAdvisorRetrievalHelper.findAdvisorBeans(BeanFactoryAdvisorRetrievalHelper.java:87)
>>>>>>> [java] at
>>>>>>> org.springframework.aop.framework.autoproxy.AbstractAdvisorAutoProxyCreator.findCandidateAdvisors(AbstractAdvisorAutoProxyCreator.java:98)
>>>>>>> [java] at
>>>>>>> org.springframework.aop.aspectj.autoproxy.AspectJAwareAdvisorAutoProxyCreator.shouldSkip(AspectJAwareAdvisorAutoProxyCreator.java:105)
>>>>>>> [java] at
>>>>>>> org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.postProcessBeforeInstantiation(AbstractAutoProxyCreator.java:244)
>>>>>>> [java] at
>>>>>>> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInstantiation(AbstractAutowireCapableBeanFactory.java:828)
>>>>>>> [java] at
>>>>>>> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.resolveBeforeInstantiation(AbstractAutowireCapableBeanFactory.java:799)
>>>>>>> [java] at
>>>>>>> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:475)
>>>>>>> [java] at
>>>>>>> java.security.AccessController.doPrivileged(Native Method)
>>>>>>> [java] at
>>>>>>> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:455)
>>>>>>> [java] at
>>>>>>> org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:251)
>>>>>>> [java] at
>>>>>>> org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:169)
>>>>>>> [java] at
>>>>>>> org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:248)
>>>>>>> [java] at
>>>>>>> org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:170)
>>>>>>> [java] at
>>>>>>> org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:883)
>>>>>>> [java] at
>>>>>>> org.springframework.context.support.AbstractApplicationContext.registerBeanPostProcessors(AbstractApplicationContext.java:593)
>>>>>>> [java] at
>>>>>>> org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:351)
>>>>>>> [java] at
>>>>>>> org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:122)
>>>>>>> [java] at
>>>>>>> org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:66)
>>>>>>> [java] at
>>>>>>> org.jasig.portal.spring.PortalApplicationContextLocator.getApplicationContext(PortalApplicationContextLocator.java:100)
>>>>>>> [java] at
>>>>>>> org.jasig.portal.RDBMServices.getDataSource(RDBMServices.java:125)
>>>>>>> [java] at
>>>>>>> org.jasig.portal.RDBMServices.getConnection(RDBMServices.java:170)
>>>>>>> [java] at
>>>>>>> org.jasig.portal.RDBMServices.getConnection(RDBMServices.java:153)
>>>>>>> [java] at
>>>>>>> org.jasig.portal.tools.dbloader.DbLoader.process(DbLoader.java:149)
>>>>>>> [java] at
>>>>>>> org.jasig.portal.tools.dbloader.DbLoader.main(DbLoader.java:117)
>>>>>>> [java] Caused by: java.sql.SQLException: ORA-01031:
>>>>>>> insufficient privileges
>>>>>>>
>>>>>>> [java] at
>>>>>>> oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
>>>>>>> [java] at
>>>>>>> oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331)
>>>>>>> [java] at
>>>>>>> oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:288)
>>>>>>> [java] at
>>>>>>> oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:743)
>>>>>>> [java] at
>>>>>>> oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:207)
>>>>>>> [java] at
>>>>>>> oracle.jdbc.driver.T4CStatement.executeForRows(T4CStatement.java:946)
>>>>>>> [java] at
>>>>>>> oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1168)
>>>>>>> [java] at
>>>>>>> oracle.jdbc.driver.OracleStatement.executeUpdateInternal(OracleStatement.java:1614)
>>>>>>> [java] at
>>>>>>> oracle.jdbc.driver.OracleStatement.executeUpdate(OracleStatement.java:1579)
>>>>>>> [java] at
>>>>>>> oracle.jdbc.OracleDatabaseMetaData.getIndexInfo(OracleDatabaseMetaData.java:3485)
>>>>>>> [java] at
>>>>>>> org.hibernate.tool.hbm2ddl.TableMetadata.initIndexes(TableMetadata.java:130)
>>>>>>> [java] at
>>>>>>> org.hibernate.tool.hbm2ddl.TableMetadata.<init>(TableMetadata.java:35)
>>>>>>> [java] at
>>>>>>> org.hibernate.tool.hbm2ddl.DatabaseMetadata.getTableMetadata(DatabaseMetadata.java:90)
>>>>>>> [java] ... 75 more
>>>>>>>
>>>>>>>
>>>>>>> Eric Dalquist wrote:
>>>>>>>> A quick google search wasn't much help. The closest thing I
>>>>>>>> found was this:
>>>>>>>> http://opensource.atlassian.com/projects/hibernate/browse/HBX-609
>>>>>>>> but I'm not sure I understand what the person is describing.
>>>>>>>>
>>>>>>>> Would you be able to have a DBA monitor what the portal is
>>>>>>>> trying to do during initportal to see if they can capture the
>>>>>>>> SQL that is causing the exception? The Hibernate based DAOs may
>>>>>>>> require more privileges on the schema than previous versions of
>>>>>>>> uPortal did but that is just speculation right now.
>>>>>>>>
>>>>>>>> -Eric
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> Tuyhang Ly wrote:
>>>>>>>>> Initially, I got some errors when running initportal against a
>>>>>>>>> schema with some tables from 2.5.* version. Then I dropped
>>>>>>>>> all tables in this schema, reran the initportal task and still
>>>>>>>>> getting this error.
>>>>>>>>>
>>>>>>>>> Tuy.
>>>>>>>>>
>>>>>>>>> Eric Dalquist wrote:
>>>>>>>>>> Are you doing initportal against a clean database schema or
>>>>>>>>>> do tables already exist in it?
>>>>>>>>>>
>>>>>>>>>> -Eric
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Tuyhang Ly wrote:
>>>>>>>>>>> Hi,
>>>>>>>>>>>
>>>>>>>>>>> I'm trying out uPortal_3.0.0-M5 with Oracle DB and getting
>>>>>>>>>>> the following error for the "ant db" task even with a clean
>>>>>>>>>>> DB to start from:
>>>>>>>>>>>
>>>>>>>>>>> [java] ERROR [main] util.JDBCExceptionReporter Jan/16
>>>>>>>>>>> 11:58:01.680 - ORA-01031: insufficient privileges
>>>>>>>>>>>
>>>>>>>>>>> [java] ERROR [main] hbm2ddl.SchemaUpdate Jan/16
>>>>>>>>>>> 11:58:01.696 - could not complete schema update
>>>>>>>>>>> [java] org.hibernate.exception.SQLGrammarException:
>>>>>>>>>>> could not get table metadata: UP_PORTLET_PREF_VALUES
>>>>>>>>>>> ...
>>>>>>>>>>> Caused by: java.sql.SQLException: ORA-01031:
>>>>>>>>>>> insufficient privileges
>>>>>>>>>>>
>>>>>>>>>>> I have configured rdbm.properties accordingly for Oracle,
>>>>>>>>>>> and there were 38 tables created after this task, but none
>>>>>>>>>>> of the UP_PORTLET* tables were there. Am I missing something?
>>>>>>>>>>>
>>>>>>>>>>> Thanks,
>>>>>>>>>>> Tuy.
>>>>>>>>>>> --
>>>>>>>>>>> Tuyhang Ly
>>>>>>>>>>> Application Developer
>>>>>>>>>>> Enterprise Systems & Services, Rutgers University
>>>>>>>>>>> 65 Davidson Road, Room 101 - Piscataway, NJ 08854
>>>>>>>>>>> voice: (732) 445-7393 | fax: (732) 445-5493 | email: [EMAIL
>>>>>>>>>>> PROTECTED]
>>>>>>>>>>>
>>>>>>>>>>> --
>>>>>>>>>>> You are currently subscribed to [email protected] as:
>>>>>>>>>>> [EMAIL PROTECTED]
>>>>>>>>>>> To unsubscribe, change settings or access archives, see
>>>>>>>>>>> http://www.ja-sig.org/wiki/display/JSG/uportal-dev
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> Tuyhang Ly
>>>>>>>>> Application Developer
>>>>>>>>> Enterprise Systems & Services, Rutgers University
>>>>>>>>> 65 Davidson Road, Room 101 - Piscataway, NJ 08854
>>>>>>>>> voice: (732) 445-7393 | fax: (732) 445-5493 | email: [EMAIL PROTECTED]
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> You are currently subscribed to [email protected] as:
>>>>>>>>> [EMAIL PROTECTED]
>>>>>>>>> To unsubscribe, change settings or access archives, see
>>>>>>>>> http://www.ja-sig.org/wiki/display/JSG/uportal-dev
>>>>>>>
>>>>>>> --
>>>>>>> Tuyhang Ly
>>>>>>> Application Developer
>>>>>>> Enterprise Systems & Services, Rutgers University
>>>>>>> 65 Davidson Road, Room 101 - Piscataway, NJ 08854
>>>>>>> voice: (732) 445-7393 | fax: (732) 445-5493 | email: [EMAIL PROTECTED]
>>>>>>>
>>>>>>> --
>>>>>>> You are currently subscribed to [email protected] as: [EMAIL
>>>>>>> PROTECTED]
>>>>>>> To unsubscribe, change settings or access archives, see
>>>>>>> http://www.ja-sig.org/wiki/display/JSG/uportal-dev
>>>>
>>>> --
>>>> Tuyhang Ly
>>>> Application Developer
>>>> Enterprise Systems & Services, Rutgers University
>>>> 65 Davidson Road, Room 101 - Piscataway, NJ 08854
>>>> voice: (732) 445-7393 | fax: (732) 445-5493 | email: [EMAIL PROTECTED]
>>>>
>>>> --
>>>> You are currently subscribed to [email protected] as: [EMAIL
>>>> PROTECTED]
>>>> To unsubscribe, change settings or access archives, see
>>>> http://www.ja-sig.org/wiki/display/JSG/uportal-dev
>
> --
> Tuyhang Ly
> Application Developer
> Enterprise Systems & Services, Rutgers University
> 65 Davidson Road, Room 101 - Piscataway, NJ 08854
> voice: (732) 445-7393 | fax: (732) 445-5493 | email: [EMAIL PROTECTED]
>
> --
> You are currently subscribed to [email protected] as: [EMAIL
> PROTECTED]
> To unsubscribe, change settings or access archives, see
> http://www.ja-sig.org/wiki/display/JSG/uportal-dev
--
Tuyhang Ly
Application Developer
Enterprise Systems & Services, Rutgers University
65 Davidson Road, Room 101 - Piscataway, NJ 08854
voice: (732) 445-7393 | fax: (732) 445-5493 | email: [EMAIL PROTECTED]
--
You are currently subscribed to [email protected] as: [EMAIL
PROTECTED]
To unsubscribe, change settings or access archives, see
http://www.ja-sig.org/wiki/display/JSG/uportal-dev