Hi Bill,

Your approach to fixing the problem sounds fine.  If it's nowhere else
in the db, removing it from the one table it's in and off disk will
repair the inconsistency.

It's hard to say how it got in that state to begin with.  But the xml
validation exception seems odd, given the chunk of xml you posted --
Fedora shouldn't care what the URI of the namespace is -- only that
it's bound to a well-formed URI, which it looks like it is.  Perhaps
there are other bits of XML in the object where the "ead" QName isn't
bound to a namespace?  If it doesn't look like that's the case, can
you submit a bug report and a attach the whole foxml so it can be
reproduced?

Thanks,
Chris

On Thu, Oct 14, 2010 at 1:26 PM, Bill Parod <bill-pa...@northwestern.edu> wrote:
> We have an object that is in a corrupted state. The object is found in the
> objectPaths table but not in doFields. Also its foxml won't parse,
> apparently because it contains a namespace reference which is unresolved,
> bound to a urn. I'll include some detail below. I'm inclined to 'fix' this
> problem by deleting the specific record in the objectPaths table and
> deleting its foxml file in the fedora data subdirectory. Is this a bad idea?
> Could there be side effects to this that I'm not considering?
> Thanks very much in advance!
> - Bill
>
> Here's a rundown of the object's mysql database profile.
> This object, having pid inu:inm-ead-0001 is:
> not in datastreamPaths
> not in dcDates
> not in doFields
> not in doRegistry
> but is in objectPaths:
> mysql> select * from objectPaths where token like 'inu:inm-ead%';
> +-----------+------------------+------------------------------------------------------------------------+
> | tokenDbID | token            | path
>                             |
> +-----------+------------------+------------------------------------------------------------------------+
> |    437940 | inu:inm-ead-0001 |
> /farchive1/fedorastorage/data/objects/2010/1014/10/37/inu_inm-ead-0001 |
> +-----------+------------------+------------------------------------------------------------------------+
>
> Searches don't find it:
> fedora/search?query=pid~inu:inm-ead-0001&pid=true&maxResults=10&xml=true
> <result> <resultList></resultList></result>
> But references to the default dissemination return auth failure rather than
> not found. I'm guessing this is because its attempting to read the object's
> foxml, but it doesn't parse and so can't obtain its policy, so denies
> access.
>
> fedora/get/inu:inm-ead-0001:
>
> 403 Forbidden
>
> Authorization failed
>
> Doing a viewItemIndex shows the root of the problem:
> fedora/get/inu:inm-ead-0001/fedora-system:3/viewItemIndex
>
> 500 Internal Server Error
>
> FOXML IO stream was bad : The prefix "ead" for element "ead:unitid" is not
> bound.
> ________________________________
>
> fedora.server.errors.ObjectIntegrityException: FOXML IO stream was bad : The
> prefix "ead" for element "ead:unitid" is not bound.
>       at
> fedora.server.storage.translation.FOXMLDODeserializer.deserialize(FOXMLDODeserializer.java:250)
>       at
> fedora.server.storage.translation.DOTranslatorImpl.deserialize(DOTranslatorImpl.java:76)
>       at
> fedora.server.storage.translation.DOTranslatorModule.deserialize(DOTranslatorModule.java:127)
>       at fedora.server.storage.SimpleDOReader.(SimpleDOReader.java:92)
>       at
> fedora.server.storage.DefaultDOManager.getReader(DefaultDOManager.java:659)
>       at
> fedora.server.access.DefaultAccess.getDissemination(DefaultAccess.java:223)
>       at
> fedora.server.access.FedoraAccessServlet.getDissemination(FedoraAccessServlet.java:730)
>       at
> fedora.server.access.FedoraAccessServlet.doGet(FedoraAccessServlet.java:440)
>       at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
>       at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
>       at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
>       at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
>       at
> fedora.server.security.servletfilters.FilterSetup.doFilter(FilterSetup.java:235)
>       at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
>       at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
>       at
> fedora.server.security.servletfilters.FilterSetup.doFilter(FilterSetup.java:235)
>       at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
>       at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
>       at
> fedora.server.security.servletfilters.FilterSetup.doFilter(FilterSetup.java:235)
>       at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
>       at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
>       at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
>       at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
>       at
> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:525)
>       at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
>       at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
>       at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
>       at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
>       at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:200)
>       at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:283)
>       at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:773)
>       at
> org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:703)
>       at
> org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:895)
>       at
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
>       at java.lang.Thread.run(Thread.java:595)
>
>
> Here's an example of what I believe is the offending foxml
> <ead:unitid xmlns:ead="urn:isbn:1-931666-22-9">autogend1e275</ead:unitid>
> Thanks,
>
> Bill Parod
>
> Library Technology Division - Enterprise Systems
> Northwestern University Library
> bill-pa...@northwestern.edu
> 847 491 5368
>
>
>
> ------------------------------------------------------------------------------
> Beautiful is writing same markup. Internet Explorer 9 supports
> standards for HTML5, CSS3, SVG 1.1,  ECMAScript5, and DOM L2 & L3.
> Spend less time writing and  rewriting code and more time creating great
> experiences on the web. Be a part of the beta today.
> http://p.sf.net/sfu/beautyoftheweb
> _______________________________________________
> Fedora-commons-users mailing list
> Fedora-commons-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/fedora-commons-users
>
>

------------------------------------------------------------------------------
Beautiful is writing same markup. Internet Explorer 9 supports
standards for HTML5, CSS3, SVG 1.1,  ECMAScript5, and DOM L2 & L3.
Spend less time writing and  rewriting code and more time creating great
experiences on the web. Be a part of the beta today.
http://p.sf.net/sfu/beautyoftheweb
_______________________________________________
Fedora-commons-users mailing list
Fedora-commons-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/fedora-commons-users

Reply via email to