Return-Path: Delivered-To: apmail-jackrabbit-dev-archive@www.apache.org Received: (qmail 37178 invoked from network); 11 Dec 2008 14:06:12 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 11 Dec 2008 14:06:12 -0000 Received: (qmail 91942 invoked by uid 500); 11 Dec 2008 14:06:22 -0000 Delivered-To: apmail-jackrabbit-dev-archive@jackrabbit.apache.org Received: (qmail 91919 invoked by uid 500); 11 Dec 2008 14:06:21 -0000 Mailing-List: contact dev-help@jackrabbit.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@jackrabbit.apache.org Delivered-To: mailing list dev@jackrabbit.apache.org Received: (qmail 91901 invoked by uid 99); 11 Dec 2008 14:06:21 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 11 Dec 2008 06:06:21 -0800 X-ASF-Spam-Status: No, hits=-4.0 required=10.0 tests=RCVD_IN_DNSWL_MED X-Spam-Check-By: apache.org Received: from [140.211.11.140] (HELO brutus.apache.org) (140.211.11.140) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 11 Dec 2008 14:06:06 +0000 Received: from brutus (localhost [127.0.0.1]) by brutus.apache.org (Postfix) with ESMTP id 4649C234C37A for ; Thu, 11 Dec 2008 06:05:44 -0800 (PST) Message-ID: <1584281167.1229004344286.JavaMail.jira@brutus> Date: Thu, 11 Dec 2008 06:05:44 -0800 (PST) From: "Stefan Guggisberg (JIRA)" To: dev@jackrabbit.apache.org Subject: [jira] Commented: (JCR-1907) ClassCastException when using OracleFileSystem with JBoss JNDI In-Reply-To: <356722913.1229002064333.JavaMail.jira@brutus> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Virus-Checked: Checked by ClamAV on apache.org [ https://issues.apache.org/jira/browse/JCR-1907?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12655645#action_12655645 ] Stefan Guggisberg commented on JCR-1907: ---------------------------------------- > To avoid the exception : java.lang.ClassCastException: org.jboss.resource.adapter.jdbc.WrappedConnection cannot be cast to oracle.jdbc.OracleConnection, > couldn't it be done something like this ? : > > public static Connection getConnection(Connection conn) { > if (conn instanceof WrappedConnection) { > return ((WrappedConnection) conn).getUnderlyingConnection(); > } > return conn; > } for obvious reasons i'm rather reluctant adding a jboss dependency to jackrabbit-core ;) there's an 'unwrap' method in jdbc 4 (since java 6) but as of now most drivers won't support it. i suggest you create your own class which extends OracleFileSystem and override the getConnectionMethod(). cheers stefan > ClassCastException when using OracleFileSystem with JBoss JNDI > -------------------------------------------------------------- > > Key: JCR-1907 > URL: https://issues.apache.org/jira/browse/JCR-1907 > Project: Jackrabbit > Issue Type: Bug > Components: jackrabbit-core > Affects Versions: 1.5.0 > Environment: - WindowsXP, JBoss AS 4.2.0.GA, JackRabbit 1.5.0, Oracle Driver : ojdbc14_10g.jar > Reporter: Eduardo Andrade > Priority: Minor > > When using OracleFilesystem with JNDI connection on JBOSS, the JBoss gives a org.jboss.resource.adapter.jdbc.WrappedConnection instance and oracle driver code expects a oracle.jdbc.OracleConnection instance. > To avoid the exception : java.lang.ClassCastException: org.jboss.resource.adapter.jdbc.WrappedConnection cannot be cast to oracle.jdbc.OracleConnection, > couldn't it be done something like this ? : > public static Connection getConnection(Connection conn) { > if (conn instanceof WrappedConnection) { > return ((WrappedConnection) conn).getUnderlyingConnection(); > } > return conn; > } > Here are the relevant repository.xml config and the Exception thrown : > > > > > > > 13:07:33,827 ERROR [RepositoryImpl] failed to start Repository: failed to load repository properties: failed to persist repository properties: null > javax.jcr.RepositoryException: failed to load repository properties: failed to persist repository properties: null: failed to persist repository properties: null: null > at org.apache.jackrabbit.core.RepositoryImpl.loadRepProps(RepositoryImpl.java:1291) > at org.apache.jackrabbit.core.RepositoryImpl.(RepositoryImpl.java:276) > at org.apache.jackrabbit.core.RepositoryImpl.create(RepositoryImpl.java:618) > at pt.gedi.ecm.services.RepositorioImpExp_ServiceImpl.iniciaRepositorio(RepositorioImpExp_ServiceImpl.java:123) > at pt.gedi.ecm.utils.ECMCodeForBase.iniciaRepositorio(ECMCodeForBase.java:74) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) > at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:597) > at pt.gedi.base.utils.ECMCodeForBase.callMethod(ECMCodeForBase.java:33) > at pt.gedi.base.services.StartupServiceImpl.startup(StartupServiceImpl.java:188) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) > at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:597) > at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1413) > at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1374) > at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1334) > at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:473) > at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409) > at java.security.AccessController.doPrivileged(Native Method) > at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380) > at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264) > at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:221) > at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261) > at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185) > at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164) > at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:429) > at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:729) > at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:381) > at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:255) > at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:199) > at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:45) > at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3854) > at org.apache.catalina.core.StandardContext.start(StandardContext.java:4359) > at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:761) > at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:741) > at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:553) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) > at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:597) > at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:297) > at org.jboss.mx.server.RawDynamicInvoker.invoke(RawDynamicInvoker.java:164) > at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659) > at org.apache.catalina.core.StandardContext.init(StandardContext.java:5310) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) > at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:597) > at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:297) > at org.jboss.mx.server.RawDynamicInvoker.invoke(RawDynamicInvoker.java:164) > at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659) > at org.jboss.web.tomcat.service.TomcatDeployer.performDeployInternal(TomcatDeployer.java:301) > at org.jboss.web.tomcat.service.TomcatDeployer.performDeploy(TomcatDeployer.java:104) > at org.jboss.web.AbstractWebDeployer.start(AbstractWebDeployer.java:375) > at org.jboss.web.WebModule.startModule(WebModule.java:83) > at org.jboss.web.WebModule.startService(WebModule.java:61) > at org.jboss.system.ServiceMBeanSupport.jbossInternalStart(ServiceMBeanSupport.java:289) > at org.jboss.system.ServiceMBeanSupport.jbossInternalLifecycle(ServiceMBeanSupport.java:245) > at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source) > at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:597) > at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155) > at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94) > at org.jboss.mx.server.Invocation.invoke(Invocation.java:86) > at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264) > at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659) > at org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceController.java:978) > at $Proxy0.start(Unknown Source) > at org.jboss.system.ServiceController.start(ServiceController.java:417) > at sun.reflect.GeneratedMethodAccessor9.invoke(Unknown Source) > at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:597) > at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155) > at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94) > at org.jboss.mx.server.Invocation.invoke(Invocation.java:86) > at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264) > at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659) > at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210) > at $Proxy45.start(Unknown Source) > at org.jboss.web.AbstractWebContainer.start(AbstractWebContainer.java:466) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) > at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:597) > at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155) > at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94) > at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:133) > at org.jboss.mx.server.Invocation.invoke(Invocation.java:88) > at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:142) > at org.jboss.mx.interceptor.DynamicInterceptor.invoke(DynamicInterceptor.java:97) > at org.jboss.system.InterceptorServiceMBeanSupport.invokeNext(InterceptorServiceMBeanSupport.java:238) > at org.jboss.ws.integration.jboss42.DeployerInterceptor.start(DeployerInterceptor.java:93) > at org.jboss.deployment.SubDeployerInterceptorSupport$XMBeanInterceptor.start(SubDeployerInterceptorSupport.java:188) > at org.jboss.deployment.SubDeployerInterceptor.invoke(SubDeployerInterceptor.java:95) > at org.jboss.mx.server.Invocation.invoke(Invocation.java:88) > at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264) > at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659) > at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210) > at $Proxy46.start(Unknown Source) > at org.jboss.deployment.MainDeployer.start(MainDeployer.java:1025) > at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:819) > at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:782) > at sun.reflect.GeneratedMethodAccessor19.invoke(Unknown Source) > at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:597) > at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155) > at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94) > at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:133) > at org.jboss.mx.server.Invocation.invoke(Invocation.java:88) > at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:142) > at org.jboss.mx.server.Invocation.invoke(Invocation.java:88) > at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264) > at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659) > at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210) > at $Proxy9.deploy(Unknown Source) > at org.jboss.deployment.scanner.URLDeploymentScanner.deploy(URLDeploymentScanner.java:421) > at org.jboss.deployment.scanner.URLDeploymentScanner.scan(URLDeploymentScanner.java:634) > at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.doScan(AbstractDeploymentScanner.java:263) > at org.jboss.deployment.scanner.AbstractDeploymentScanner.startService(AbstractDeploymentScanner.java:336) > at org.jboss.system.ServiceMBeanSupport.jbossInternalStart(ServiceMBeanSupport.java:289) > at org.jboss.system.ServiceMBeanSupport.jbossInternalLifecycle(ServiceMBeanSupport.java:245) > at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source) > at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:597) > at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155) > at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94) > at org.jboss.mx.server.Invocation.invoke(Invocation.java:86) > at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264) > at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659) > at org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceController.java:978) > at $Proxy0.start(Unknown Source) > at org.jboss.system.ServiceController.start(ServiceController.java:417) > at sun.reflect.GeneratedMethodAccessor9.invoke(Unknown Source) > at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:597) > at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155) > at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94) > at org.jboss.mx.server.Invocation.invoke(Invocation.java:86) > at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264) > at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659) > at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210) > at $Proxy4.start(Unknown Source) > at org.jboss.deployment.SARDeployer.start(SARDeployer.java:302) > at org.jboss.deployment.MainDeployer.start(MainDeployer.java:1025) > at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:819) > at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:782) > at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:766) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) > at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:597) > at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155) > at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94) > at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:133) > at org.jboss.mx.server.Invocation.invoke(Invocation.java:88) > at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:142) > at org.jboss.mx.server.Invocation.invoke(Invocation.java:88) > at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264) > at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659) > at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210) > at $Proxy5.deploy(Unknown Source) > at org.jboss.system.server.ServerImpl.doStart(ServerImpl.java:482) > at org.jboss.system.server.ServerImpl.start(ServerImpl.java:362) > at org.jboss.Main.boot(Main.java:200) > at org.jboss.Main$1.run(Main.java:508) > at java.lang.Thread.run(Thread.java:619) > Caused by: javax.jcr.RepositoryException: failed to persist repository properties: null: null > at org.apache.jackrabbit.core.RepositoryImpl.storeRepProps(RepositoryImpl.java:1314) > at org.apache.jackrabbit.core.RepositoryImpl.loadRepProps(RepositoryImpl.java:1284) > ... 167 more > Caused by: java.io.IOException > at org.apache.jackrabbit.core.fs.db.OracleFileSystem$1.close(OracleFileSystem.java:400) > at org.apache.jackrabbit.core.RepositoryImpl.storeRepProps(RepositoryImpl.java:1309) > ... 168 more > Caused by: java.lang.reflect.InvocationTargetException > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) > at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:597) > at org.apache.jackrabbit.core.fs.db.OracleFileSystem.createTemporaryBlob(OracleFileSystem.java:565) > at org.apache.jackrabbit.core.fs.db.OracleFileSystem$1.close(OracleFileSystem.java:388) > ... 169 more > Caused by: java.lang.ClassCastException: org.jboss.resource.adapter.jdbc.WrappedConnection cannot be cast to oracle.jdbc.OracleConnection > at oracle.sql.BLOB.createTemporary(BLOB.java:532) > ... 175 more > Thank you, > Eduardo Andrade -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.