Details

    • Type: Bug
    • Status: Reopened
    • Priority: Major
    • Resolution: Unresolved
    • Affects Version/s: Fedora 4.4.0
    • Fix Version/s: Fedora 5.0.0
    • Component/s: None
    • Labels:
      None
    • Roadmap Theme:
      Services: CRUD
    • Sprint:
      Sprint 2017 - 20

      Description

      When doing some testing, I came across an error condition when trying to add a triple with a predicate that starts with an integer to an existing Fedora container. This can be replicated from Fedora's default UI. This SPARQL INSERT statement works fine:
      ==================
          PREFIX bf: <http://bibframe.org/vocab/>
          PREFIX cc: <http://catalog.coloradocollege.edu/>

          INSERT {
            <> bf:relatedTo cc:1234
          }
      ==================

      This very similar SPARQL INSERT statement fails (but succeeds with Blazegraph):
      ==================
          PREFIX bf: <http://bibframe.org/vocab/>
          PREFIX cc: <http://catalog.coloradocollege.edu/>

          INSERT {
            <> cc:1234 "anything"
          }
          WHERE {}
      ==================
      See: https://github.com/fcrepo4/fcrepo4/issues/924

      Here is the error:

      `java.lang.IllegalArgumentException: The localName argument may not be null or zero-length at org.modeshape.common.util.CheckArg.isNotZeroLength(CheckArg.java:360) at org.modeshape.common.util.CheckArg.isNotEmpty(CheckArg.java:373) at org.modeshape.jcr.value.basic.NameValueFactory.create(NameValueFactory.java:175) at org.modeshape.jcr.value.basic.NameValueFactory.create(NameValueFactory.java:168) at org.modeshape.jcr.cache.document.DocumentTranslator.getProperties(DocumentTranslator.java:243) at org.modeshape.jcr.cache.document.LazyCachedNode.getProperties(LazyCachedNode.java:427) at org.modeshape.jcr.AbstractJcrNode.getProperties(AbstractJcrNode.java:2061) at org.fcrepo.kernel.modeshape.rdf.impl.PropertiesRdfContext.triplesFromProperties(PropertiesRdfContext.java:71) at org.fcrepo.kernel.modeshape.rdf.impl.PropertiesRdfContext.(PropertiesRdfContext.java:65) at sun.reflect.GeneratedConstructorAccessor109.newInstance(Unknown Source) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:422) at org.fcrepo.kernel.modeshape.FedoraResourceImpl.getTriples(FedoraResourceImpl.java:470) at org.fcrepo.kernel.modeshape.FedoraResourceImpl.getTriples(FedoraResourceImpl.java:457) at org.fcrepo.http.api.ContentExposingResource.getTriples(ContentExposingResource.java:369) at org.fcrepo.http.api.ContentExposingResource.getTriples(ContentExposingResource.java:365) at org.fcrepo.http.api.ContentExposingResource.getResourceTriples(ContentExposingResource.java:220) at org.fcrepo.http.api.ContentExposingResource.getContent(ContentExposingResource.java:182) at org.fcrepo.http.api.FedoraLdp.describe(FedoraLdp.java:199) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory$1.invoke(ResourceMethodInvocationHandlerFactory.java:81) at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:151) at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:171) at org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$ResponseOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:152) at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:104) at org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:384) at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:342) at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:101) at org.glassfish.jersey.server.ServerRuntime$1.run(ServerRuntime.java:271) at org.glassfish.jersey.internal.Errors$1.call(Errors.java:271) at org.glassfish.jersey.internal.Errors$1.call(Errors.java:267) at org.glassfish.jersey.internal.Errors.process(Errors.java:315) at org.glassfish.jersey.internal.Errors.process(Errors.java:297) at org.glassfish.jersey.internal.Errors.process(Errors.java:267) at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:297) at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:254) at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:1030) at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:373) at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:381) at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:344) at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:221) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:217) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79) at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:518) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1091) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:673) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1500) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1456) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:745)`

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                nianma Nianli Ma
                Reporter:
                awoods Andrew Woods
                Reviewer:
                Andrew Woods
              • Votes:
                0 Vote for this issue
                Watchers:
                4 Start watching this issue

                Dates

                • Created:
                  Updated: