[ https://issues.apache.org/jira/browse/OPENJPA-2804?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Mark Struberg resolved OPENJPA-2804. ------------------------------------ Resolution: Won't Fix This is not an OpenJPA problem. > Need To have correct OpenJPA options to upgrade JUDDI DB Schema > --------------------------------------------------------------- > > Key: OPENJPA-2804 > URL: https://issues.apache.org/jira/browse/OPENJPA-2804 > Project: OpenJPA > Issue Type: Bug > Components: jpa > Affects Versions: 2.3.0 > Reporter: Amol Bhonsle > Priority: Major > > This issue, I am logging as related issue for Apache JUDDI-3.3.7. > https://issues.apache.org/jira/browse/JUDDI-1005 > We are trying to update JUDDI DB from JUDDI-3.0.4 to JUDDI-3.3.7. JUDDI DB is > hosted on SQL Server. We use openjpa-2.3.0 which is provided by juddi-3.3.7 > distribution. > As per openjpa-2.3.0 documentation: > drop option of SchemaTool should do following: > drop: Drop all schema components in the schema XML. Tables will only be > dropped if they would have 0 columns after dropping all columns listed in the > XML. > and add option should do following: > add: This is the default action if you do not specify one. It brings the > schema up-to-date with the given XML document by adding tables, columns, > indexes, etc. This action never drops any schema components. > Also it is allowed in persistence.xml to use options as comma separated, so > we tried following option in persistence.xml to drop old juddi tables and > create new tables as per juddi-3.3.7 schema but it did not work: > our persistence.xml has following property : > <property name="openjpa.jdbc.SynchronizeMappings" > value="buildSchema(SchemaAction='drop,add')"/> > > This gives following Exception when JUDDI is deployed by tomcat : > {code:java} > SEVERE: Exception sending context initialized event to listener instance of > class org.springframework.web.context.ContextLoaderListenerSEVERE: Exception > sending context initialized event to listener instance of class > org.springframework.web.context.ContextLoaderListenerorg.springframework.beans.factory.BeanCreationException: > Error creating bean with name 'inquiry': Cannot create inner bean '(inner > bean)#fa6535a' of type [org.apache.juddi.api.impl.UDDIInquiryImpl] while > setting constructor argument; nested exception is > org.springframework.beans.factory.BeanCreationException: Error creating bean > with name '(inner bean)#fa6535a': Instantiation of bean failed; nested > exception is org.springframework.beans.BeanInstantiationException: Failed to > instantiate [org.apache.juddi.api.impl.UDDIInquiryImpl]: Constructor threw > exception; nested exception is <openjpa-2.3.0-r422266:1540826 nonfatal > general error> org.apache.openjpa.persistence.PersistenceException: The > object 'PK_j3_clerk_5609ADDDCF01D08E' is dependent on column 'clerk_name'. > {stmnt 1807668378 ALTER TABLE j3_clerk DROP COLUMN clerk_name} [code=5074, > state=S0001] at > org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveInnerBean(BeanDefinitionValueResolver.java:389) > at > org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:134) > at > org.springframework.beans.factory.support.ConstructorResolver.resolveConstructorArguments(ConstructorResolver.java:691) > at > org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:196) > at > org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1358) > at > org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1204) > at > org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:557) > at > org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:517) > at > org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:323) > at > org.springframework.beans.factory.support.AbstractBeanFactory$$Lambda$208/1654431226.getObject(Unknown > Source) at > org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) > at > org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:321) > at > org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) > at > org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:879) > at > org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:878) > at > org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:550) > at > org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:401) > at > org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:292) > at > org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:103) > at > org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:5118) > at > org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5641) > at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145) at > org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:1015) > at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:991) > at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:652) at > org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1296) > at > org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:2038) > at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) > at java.util.concurrent.FutureTask.run(FutureTask.java:266) at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) > at java.lang.Thread.run(Thread.java:745) > {code} > -- This message was sent by Atlassian Jira (v8.3.4#803005)