[ http://www.jahia.org/jira/browse/DOC-156?page=all ]

Thomas Draier resolved DOC-156.
-------------------------------

    Resolution: Fixed

mysql bug ( http://bugs.mysql.com/bug.php?id=9777 )

> Slide namespace initialisation failure
> --------------------------------------
>
>                 Key: DOC-156
>                 URL: http://www.jahia.org/jira/browse/DOC-156
>             Project: Jahia Document Management Server
>          Issue Type: Bug
>    Affects Versions: Jahia 5.0
>         Environment: i686, Debian sarge, JDK 1.5.0 (_03 and _09), MySQL 
> 4.1.11-Debian_4sarge7-log (everything on one server), Connector/J (3.1.7 and 
> 5.0.4)
>            Reporter: D Bonvillain
>         Assigned To: Thomas Draier
>             Fix For: Jahia 5.0 SP2
>
>
> After a fresh install of Jahia 15521, all the accesses to Slide fail.
> Here is the stacktrace when Tomcat starts (Spring and reflection removed for 
> clarity, I can provide the full stack trace if needed):
>  70858 [2006-11-01 10:35:48,399] [file-content-store]  INFO - File Store 
> configured to /opt/jahia5.0.0/tomcat/webapps/jahia/WEB-INF/var
> /content/slide/<sitekey>/store, working directory 
> /opt/jahia5.0.0/tomcat/webapps/jahia/WEB-INF/var/content/slide/<sitekey>/work
>  70869 [2006-11-01 10:35:48,410] [org.apache.slide.common.Namespace]  INFO - 
> Loading namespace <sitekey> base data
>  71013 [2006-11-01 10:35:48,554] [org.apache.slide.common.Namespace]  INFO - 
> Init namespace <sitekey> configuration
>  71016 [2006-11-01 10:35:48,557] [org.apache.slide.common.Namespace]  INFO - 
> Import data into namespace <sitekey>
>  71026 [2006-11-01 10:35:48,567] [org.apache.slide.common.XMLUnmarshaller]  
> INFO - Loading object /
>  71036 [2006-11-01 10:35:48,577] [org.apache.slide.common.XMLUnmarshaller]  
> INFO - Object already exists at /
>  71517 [2006-11-01 10:35:49,058] [org.apache.slide.common.XMLUnmarshaller]  
> INFO - Loading object /shared
>  71582 [2006-11-01 10:35:49,123] [org.apache.slide.common.Namespace]  WARN - 
> Namespace base configuration might have been already done
> before
>  71588 [2006-11-01 10:35:49,129] [org.apache.slide.common.Namespace]  WARN - 
> org.apache.slide.common.ServiceAccessException: Service or
> [EMAIL PROTECTED] access error : SessionSynchronization; Duplicate entry '1' 
> for key 1; neste
> d exception is java.sql.BatchUpdateException: Duplicate entry '1' for key 1
> org.apache.slide.common.ServiceAccessException: Service [EMAIL PROTECTED] 
> access error : Se
> ssionSynchronization; Duplicate entry '1' for key 1; nested exception is 
> java.sql.BatchUpdateException: Duplicate entry '1' for key 1
>         at 
> org.apache.slide.store.AbstractStore.storeObject(AbstractStore.java:742)
>         at 
> org.apache.slide.store.ExtendedStore.storeObject(ExtendedStore.java:631)
>         at 
> org.apache.slide.store.BindingStore.storeObject(BindingStore.java:93)
>         at 
> org.jahia.services.webdav.stores.JahiaBindingStore.storeObject(JahiaBindingStore.java:60)
>         at 
> org.apache.slide.store.BindingStore.storeObject(BindingStore.java:99)
>         at 
> org.jahia.services.webdav.stores.JahiaBindingStore.storeObject(JahiaBindingStore.java:60)
>         at 
> org.apache.slide.structure.StructureImpl.store(StructureImpl.java:520)
>         at 
> org.apache.slide.structure.StructureImpl.create(StructureImpl.java:402)
>         at 
> org.apache.slide.common.XMLUnmarshaller.loadObjectNode(XMLUnmarshaller.java:154)
>         at 
> org.apache.slide.common.XMLUnmarshaller.loadObjectNode(XMLUnmarshaller.java:274)
>         at 
> org.apache.slide.common.XMLUnmarshaller.unmarshal(XMLUnmarshaller.java:90)
>         at 
> org.apache.slide.common.NamespaceAccessTokenImpl.importData(NamespaceAccessTokenImpl.java:239)
>         at org.apache.slide.common.Namespace.loadBaseData(Namespace.java:823)
>         at 
> org.apache.slide.common.JahiaDomain.addNamespace(JahiaDomain.java:97)
>         at 
> org.jahia.services.webdav.SlideSiteListener.siteAdded(SlideSiteListener.java:34)
>         at 
> org.jahia.registries.JahiaListenersRegistry.wakeupListeners(JahiaListenersRegistry.java:230)
>         at 
> org.jahia.services.events.JahiaEventGeneratorBaseService.fireSiteAdded(JahiaEventGeneratorBaseService.java:130)
>         at 
> org.jahia.services.events.JahiaEventGeneratorBaseService$$FastClassByCGLIB$$15089916.invoke(<generated>)
>         at 
> org.jahia.services.events.JahiaEventGeneratorBaseService$$EnhancerByCGLIB$$d73cdc33.fireSiteAdded(<generated>)
>         at 
> org.jahia.services.sites.JahiaSitesBaseService.addSite(JahiaSitesBaseService.java:335)
>         at 
> org.jahia.services.sites.JahiaSitesBaseService$$FastClassByCGLIB$$4d40271e.invoke(<generated>)
>         at 
> org.jahia.services.sites.JahiaSitesBaseService$$EnhancerByCGLIB$$e79403cb.addSite(<generated>)
>         at 
> org.jahia.admin.sites.ManageSites.terminateAdd(ManageSites.java:868)
>         at org.jahia.admin.sites.ManageSites.createSite(ManageSites.java:2007)
>         at org.jahia.bin.Jahia.service(Jahia.java:800)
>  71600 [2006-11-01 10:35:49,141] [org.apache.slide.common.Namespace]  INFO - 
> Loading namespace <sitekey> configuration
> org.apache.slide.common.ServiceAccessException: Service [EMAIL PROTECTED] 
> access error : ja
> va.lang.NullPointerException
>         at 
> org.jahia.hibernate.manager.JahiaSlideUriManager.retrieveObject(JahiaSlideUriManager.java:400)
>         at 
> org.jahia.hibernate.manager.JahiaSlideUriManager$$FastClassByCGLIB$$7beafc55.invoke(<generated>)
>         at 
> org.jahia.hibernate.manager.JahiaSlideUriManager$$EnhancerByCGLIB$$54afe74a.retrieveObject(<generated>)
>         at 
> org.jahia.services.webdav.stores.JahiaJDBCAdapter.retrieveObject(JahiaJDBCAdapter.java:106)
>         at 
> org.apache.slide.store.impl.rdbms.AbstractRDBMSStore.retrieveObject(AbstractRDBMSStore.java:401)
>         at 
> org.jahia.services.webdav.stores.JahiaDescriptorsStore.processRoot(JahiaDescriptorsStore.java:977)
>         at 
> org.jahia.services.webdav.stores.JahiaDescriptorsStore.retrieveObject(JahiaDescriptorsStore.java:559)
>         at 
> org.apache.slide.store.AbstractStore.retrieveObject(AbstractStore.java:699)
>         at 
> org.apache.slide.store.ExtendedStore.retrieveObject(ExtendedStore.java:605)
>         at 
> org.apache.slide.store.BindingStore.retrieveObject(BindingStore.java:81)
>         at 
> org.apache.slide.store.BindingStore.doResolve(BindingStore.java:680)
>         at 
> org.apache.slide.store.BindingStore.doRetrieveObjectNode(BindingStore.java:646)
>         at 
> org.apache.slide.store.BindingStore.retrieveObject(BindingStore.java:84)
>         at 
> org.apache.slide.common.NamespaceConfig.getActionNode(NamespaceConfig.java:1053)
>         at 
> org.apache.slide.common.NamespaceConfig.getConfiguredNode(NamespaceConfig.java:801)
>         at 
> org.apache.slide.common.NamespaceConfig.initializeNamespaceConfig(NamespaceConfig.java:671)
>         at 
> org.apache.slide.common.Namespace.loadConfiguration(Namespace.java:877)
>         at 
> org.apache.slide.common.JahiaDomain.addNamespace(JahiaDomain.java:100)
>         at 
> org.jahia.services.webdav.SlideSiteListener.siteAdded(SlideSiteListener.java:34)
>         at 
> org.jahia.registries.JahiaListenersRegistry.wakeupListeners(JahiaListenersRegistry.java:230)
>         at 
> org.jahia.services.events.JahiaEventGeneratorBaseService.fireSiteAdded(JahiaEventGeneratorBaseService.java:130)
>         at 
> org.jahia.services.events.JahiaEventGeneratorBaseService$$FastClassByCGLIB$$15089916.invoke(<generated>)
>         at 
> org.jahia.services.events.JahiaEventGeneratorBaseService$$EnhancerByCGLIB$$d73cdc33.fireSiteAdded(<generated>)
>         at 
> org.jahia.services.sites.JahiaSitesBaseService.addSite(JahiaSitesBaseService.java:335)
>         at 
> org.jahia.services.sites.JahiaSitesBaseService$$FastClassByCGLIB$$4d40271e.invoke(<generated>)
>         at 
> org.jahia.services.sites.JahiaSitesBaseService$$EnhancerByCGLIB$$e79403cb.addSite(<generated>)
>         at 
> org.jahia.admin.sites.ManageSites.terminateAdd(ManageSites.java:868)
>         at org.jahia.admin.sites.ManageSites.createSite(ManageSites.java:2007)
>         at org.jahia.bin.Jahia.service(Jahia.java:800)
>         at 
> org.jahia.services.webdav.stores.JahiaJDBCAdapter.retrieveObject(JahiaJDBCAdapter.java:110)
>         at 
> org.apache.slide.store.impl.rdbms.AbstractRDBMSStore.retrieveObject(AbstractRDBMSStore.java:401)
>         at 
> org.jahia.services.webdav.stores.JahiaDescriptorsStore.processRoot(JahiaDescriptorsStore.java:977)
>         at 
> org.jahia.services.webdav.stores.JahiaDescriptorsStore.retrieveObject(JahiaDescriptorsStore.java:559)
>         at 
> org.apache.slide.store.AbstractStore.retrieveObject(AbstractStore.java:699)
>         at 
> org.apache.slide.store.ExtendedStore.retrieveObject(ExtendedStore.java:605)
>         at 
> org.apache.slide.store.BindingStore.retrieveObject(BindingStore.java:81)
>         at 
> org.apache.slide.store.BindingStore.doResolve(BindingStore.java:680)
>         at 
> org.apache.slide.store.BindingStore.doRetrieveObjectNode(BindingStore.java:646)
>         at 
> org.apache.slide.store.BindingStore.retrieveObject(BindingStore.java:84)
>         at 
> org.apache.slide.common.NamespaceConfig.getActionNode(NamespaceConfig.java:1053)
>         at 
> org.apache.slide.common.NamespaceConfig.getConfiguredNode(NamespaceConfig.java:801)
>         at 
> org.apache.slide.common.NamespaceConfig.initializeNamespaceConfig(NamespaceConfig.java:671)
>         at 
> org.apache.slide.common.Namespace.loadConfiguration(Namespace.java:877)
>         at 
> org.apache.slide.common.JahiaDomain.addNamespace(JahiaDomain.java:100)
>         at 
> org.jahia.services.webdav.SlideSiteListener.siteAdded(SlideSiteListener.java:34)
>         at 
> org.jahia.registries.JahiaListenersRegistry.wakeupListeners(JahiaListenersRegistry.java:230)
>         at 
> org.jahia.services.events.JahiaEventGeneratorBaseService.fireSiteAdded(JahiaEventGeneratorBaseService.java:130)
>         at 
> org.jahia.services.events.JahiaEventGeneratorBaseService$$FastClassByCGLIB$$15089916.invoke(<generated>)
>         at 
> org.jahia.services.events.JahiaEventGeneratorBaseService$$EnhancerByCGLIB$$d73cdc33.fireSiteAdded(<generated>)
>         at 
> org.jahia.services.sites.JahiaSitesBaseService.addSite(JahiaSitesBaseService.java:335)
>         at 
> org.jahia.services.sites.JahiaSitesBaseService$$FastClassByCGLIB$$4d40271e.invoke(<generated>)
>         at 
> org.jahia.services.sites.JahiaSitesBaseService$$EnhancerByCGLIB$$e79403cb.addSite(<generated>)
>         at 
> org.jahia.admin.sites.ManageSites.terminateAdd(ManageSites.java:868)
>         at org.jahia.admin.sites.ManageSites.createSite(ManageSites.java:2007)
>         at org.jahia.bin.Jahia.service(Jahia.java:800)
> Here are the relevant parts of the database:
> mysql> select * from jahia_sl2_uri;
> +--------+----------------------------------+-----------+
> | uri_id | uri_string                       | namespace |
> +--------+----------------------------------+-----------+
> |      1 | /                                |         1 |
> |      2 | /2006-11-01/10-35/jahiaServer1/1 |         1 |
> +--------+----------------------------------+-----------+
> 2 rows in set (0.00 sec)
> mysql> select * from jahia_sl2_object;
> +--------+----------------------------------------+
> | uri_id | class_name                             |
> +--------+----------------------------------------+
> |      1 | org.apache.slide.structure.SubjectNode |
> |      2 | org.apache.slide.structure.SubjectNode |
> +--------+----------------------------------------+
> 2 rows in set (0.00 sec)
> While tracing the code, it appears that in JahiaSlideUriManager, when the 
> JahiaSlideUri is retrieved from the database on line 381, the 
> jahiaSlideObject attribute has the value 'null', even if the corresponding 
> row exists in the database. Looking at the queries generated by Hibernate:
> Hibernate: select jahiaslide0_.uri_id as uri1_, jahiaslide0_.uri_string as 
> uri2_52_, jahiaslide0_.namespace as namespace52_ from jahia_sl2_uri 
> jahiaslide0_ where jahiaslide0_.uri_string=? and jahiaslide0_.namespace=?
> Hibernate: select jahiaslide0_.uri_id as uri1_1_, jahiaslide0_.class_name as 
> class2_59_1_, jahiaslide1_.uri_id as uri1_0_, jahiaslide1_.uri_string as 
> uri2_52_0_, jahiaslide1_.namespace as namespace52_0_ from jahia_sl2_object 
> jahiaslide0_ inner join jahia_sl2_uri jahiaslide1_ on 
> jahiaslide0_.uri_id=jahiaslide1_.uri_id where jahiaslide0_.uri_id=?
> The JahiaSlideObject is queried, but no result is returned from the database 
> (org.hibernate.loader.Loader line 408). Running that query in the mysql 
> native client on the server provides the expected result. Running a test case 
> with prepared statement lead to the following result: with prepared 
> statement, the query does not return any result, with hard-coded parameter, 
> the query returns the expected result.
> Adding "useServerPrepStmts=false" in the MySQL JDBC URL fixes the problem in 
> the test case and on Jahia, so it seems to be a bug in the prepared statement 
> implementation in this version of MySQL.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://www.jahia.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        
_______________________________________________
jira_list mailing list
[email protected]
http://lists.jahia.org/cgi-bin/mailman/listinfo/jira_list

Reply via email to