Chris Wiita wrote:
> I attempted a update to Base2.2 from a 2.1.1 installation.  Executing 
> updatedb.sh worked until the "Updating database" step:

I really don't know why this is happening. The error message says 
something about "Discriminator: 0" but we never use a 0, only the values 
1, 2, 3 and 4, which have the following meaning:

  1 = Biosource
  2 = Sample
  3 = Extract
  4 = Labeled extract

Can you check the "BioMaterials" table and check if any row have a value 
in the "discriminator" column that is not in the 1-4 range?

If there are such values they must be changed to one of the above. Then 
we have to ask the question how they got there in the first place.

If there are only 1-4 the error message complaining about 
"Discriminator: 0" is a bit confusing and is something that we need to 
investigate further to see if we can reproduce the error.

Another option is to manually change the schema version to 29, but then 
you will not get the changes between 28 and 29. Luckily, this change 
doesn't involve any changes to the database. It only recalculates the 
remaining quantity of all biomaterials since a bug may have caused them 
to be incorrect. See ticket #466: http://base.thep.lu.se/ticket/466

I don't think it was a good idea to run the update script from an 
earlier version. I really don't know if that might have messed things up 
more or not. I'll add a ticket to make sure that the update script 
checks the schema version and doesn't execute if it is too high. In any 
case it is good that the main program does the check and refuses to 
start since it can lead to incorrect data beeing inserted into the 
database.

It is not possible to revert back to an earlier version. You can only do 
this if you have made a backup of the database.

/Nicklas

> ----------
> [75%]   Updating database...
> [87%]   --Updating schema version: 28 -> 29...12:06:13,579 ERROR 
> Update:1150 - updateToSchemaVersion29: FAILED
> net.sf.basedb.core.BaseException: Object with id: 1 was not of the 
> specified subclass: net.sf.basedb.core.data.MeasuredBioMaterialData 
> (Discriminator: 0)
>         at 
> net.sf.basedb.core.HibernateUtil.loadList(HibernateUtil.java:1355)
>         at 
> net.sf.basedb.core.Update.updateToSchemaVersion29(Update.java:1105)
>         at net.sf.basedb.core.Update.updateDatabase(Update.java:504)
>         at net.sf.basedb.install.InitDB.main(InitDB.java:69)
> Caused by: org.hibernate.WrongClassException: Object with id: 1 was not 
> of the specified subclass: 
> net.sf.basedb.core.data.MeasuredBioMaterialData (Discriminator: 0)
>         at org.hibernate.loader.Loader.getInstanceClass(Loader.java:1444)
>         at 
> org.hibernate.loader.Loader.instanceNotYetLoaded(Loader.java:1275)
>         at org.hibernate.loader.Loader.getRow(Loader.java:1197)
>         at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:568)
>         at org.hibernate.loader.Loader.doQuery(Loader.java:689)
>         at 
> org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:224)
>         at org.hibernate.loader.Loader.doList(Loader.java:2211)
>         at 
> org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2095)
>         at org.hibernate.loader.Loader.list(Loader.java:2090)
>         at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:375)
>         at 
> org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:338)
>         at 
> org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:172)
>         at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1121)
>         at org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
>         at 
> net.sf.basedb.core.HibernateUtil.loadList(HibernateUtil.java:1351)
>         ... 3 more
> 
> [90%]   Database update failed: Object with id: 1 was not of the 
> specified subclass: net.sf.basedb.core.data.MeasuredBioMaterialData 
> (Discriminator: 0)
> 
> 
> net.sf.basedb.core.BaseException: Object with id: 1 was not of the 
> specified subclass: net.sf.basedb.core.data.MeasuredBioMaterialData 
> (Discriminator: 0)
>         at 
> net.sf.basedb.core.HibernateUtil.loadList(HibernateUtil.java:1355)
>         at 
> net.sf.basedb.core.Update.updateToSchemaVersion29(Update.java:1105)
>         at net.sf.basedb.core.Update.updateDatabase(Update.java:504)
>         at net.sf.basedb.install.InitDB.main(InitDB.java:69)
> Caused by: org.hibernate.WrongClassException: Object with id: 1 was not 
> of the specified subclass: 
> net.sf.basedb.core.data.MeasuredBioMaterialData (Discriminator: 0)
>         at org.hibernate.loader.Loader.getInstanceClass(Loader.java:1444)
>         at 
> org.hibernate.loader.Loader.instanceNotYetLoaded(Loader.java:1275)
>         at org.hibernate.loader.Loader.getRow(Loader.java:1197)
>         at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:568)
>         at org.hibernate.loader.Loader.doQuery(Loader.java:689)
>         at 
> org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:224)
>         at org.hibernate.loader.Loader.doList(Loader.java:2211)
>         at 
> org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2095)
>         at org.hibernate.loader.Loader.list(Loader.java:2090)
>         at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:375)
>         at 
> org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:338)
>         at 
> org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:172)
>         at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1121)
>         at org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
>         at 
> net.sf.basedb.core.HibernateUtil.loadList(HibernateUtil.java:1351)
>         ... 3 more
> ----------
> 
> First, what could this be?  I'm running a mysql database, the 
> base.config is set up properly, and no BASE files have ever been 
> modified--it's a very vanilla installation.  It seemed like a minor 
> error, so I just switched back to my old 2.1.1 installation (switching 
> folders, ensuring the www link in my tomcat webapp directory was 
> correct).  I ran updatedb.sh on that install (perhaps mistakenly), and 
> got a error from it, as follows.
> 
> ----------
> [75%]   Updating database...
> [90%]   Database updated successfully.
> [95%]   Installing web application...12:15:20,332 ERROR Application:401 
> - Schema version mismatch: database schema version=28; expected=20; 
> Please update the BASE code before starting.
> 
> 
> net.sf.basedb.core.BaseException: Schema version mismatch: database 
> schema version=28; expected=20; Please update the BASE code before starting.
>         at net.sf.basedb.core.Application.start(Application.java:402)
>         at net.sf.basedb.core.Application.start(Application.java:317)
>         at net.sf.basedb.install.Webclient.install(Webclient.java:92)
>         at net.sf.basedb.install.InitDB.main(InitDB.java:72)
> ----------
> 
> 
> If it's reporting a successful database update, I would think the schema 
> version would have to be consistent, so the mismatch at the last step 
> doesn't make sense.  Ignoring the error and attempting to load the BASE 
> interface returns the following 500 server error:
> 
> ----------
> 
> type Exception report
> message
> description The server encountered an internal error () that prevented 
> it from fulfilling this request.
> exception
> 
> net.sf.basedb.core.BaseException: Schema version mismatch: database 
> schema version=28; expected=20; Please update the BASE code before starting.
>     net.sf.basedb.core.Application.start(Application.java:402)
>     net.sf.basedb.core.Application.start(Application.java:301)
>     net.sf.basedb.core.Application.getSessionControl(Application.java:736)
>     net.sf.basedb.clients.web.Base.getSessionControl(Base.java:111)
>     org.apache.jsp.index_jsp._jspService(index_jsp.java:66)
>     org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
>     javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
>     
> org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)
>     org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
>     org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
>     javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
>     
> net.sf.basedb.clients.web.servlet.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:71)
> 
> ----------
> 
> So 2.2's update script will update the version 28 to 29 (by the looks of 
> it) except it isn't working on my install--did it update the schema 
> earlier in the script (to 28), so that the database is no longer 
> compatible with the 2.1.1 version (which appears to want version 20)?  
> If the 2.2 update isn't an obvious fix, is there a way to revert to the 
> 2.1 schema?  Thanks.
> 
> --Chris Wiita
> 
> -------------------------------------------------------------------------
> Using Tomcat but need to do more? Need to support web services, security?
> Get stuff done quickly with pre-integrated technology to make your job easier.
> Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
> http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
> _______________________________________________
> The BASE general discussion mailing list
> basedb-users@lists.sourceforge.net
> unsubscribe: send a mail with subject "unsubscribe" to
> [EMAIL PROTECTED]


-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier.
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
The BASE general discussion mailing list
basedb-users@lists.sourceforge.net
unsubscribe: send a mail with subject "unsubscribe" to
[EMAIL PROTECTED]

Reply via email to