Uploaded image for project: 'Causeway'
  1. Causeway
  2. CAUSEWAY-632

PublishingService's PublishedEvent id has an incorrect max length

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • objectstore-jdo-1.3.0
    • objectstore-jdo-1.4.0
    • Persistence JDO
    • None

    Description

      As reported by Bilgin Ibryam... stack trace below.

      Attempt to store value "bec9ff8b-c903-4efd-a834-18ba918d8e6b.0" in column ""id"" that has maximum length of 32. Please correct your data!

      This is the PublishedEvent class; which is initialized with:

      publishedEvent.setId(metadata.getId());

      where metadata is EventMetadata

      /**

      • Returns a string that concatenates the {@link #getTransactionId()}

        and the

      • {@link #getSequence()}

        with a period (<tt>.</tt>).
        */
        public String getId()

        { return getTransactionId() + "." + getSequence(); }

      and

      /**

      • Isis' identifier of the transaction within which this event
      • originated.
      • <p>
      • Note that there could be several events all with the same transaction Id.
        */
        public UUID getTransactionId() { return transactionId; }

      and

      /**

      • The zero-based sequence number of this event within the transaction.
      • <p>
      • The combination of {@link #getTransactionId() transaction Id}

        and

        {@link #getSequence() sequence}
      • is guaranteed to be unique.
        */
        public int getSequence() { return sequence; }

      ~~~~~

      A UUID.toString is something like "067e6162-3b6f-4ae2-a171-2470b63dff00" (36 chars). It corresponds to the transaction Id of Isis.

      A sequence is incremented for each published object in a transaction. This is an int, the maximum value of which is 10 digits.

      Therefore the length should be 36 + 1 + 10 = 47 chars.

      ~~~~~~~~~~~~~
      original stacktrace:

      javax.jdo.JDOFatalUserException
      Attempt to store value "bec9ff8b-c903-4efd-a834-18ba918d8e6b.0" in column ""id"" that has maximum length of 32. Please correct your data!
      org.datanucleus.api.jdo.NucleusJDOHelper#getJDOExceptionForNucleusException(NucleusJDOHelper.java:528)
      org.datanucleus.api.jdo.JDOPersistenceManager#jdoMakePersistent(JDOPersistenceManager.java:732)
      org.datanucleus.api.jdo.JDOPersistenceManager#makePersistent(JDOPersistenceManager.java:752)
      org.apache.isis.objectstore.jdo.datanucleus.persistence.commands.DataNucleusCreateObjectCommand#execute(DataNucleusCreateObjectCommand.java:54)
      org.apache.isis.objectstore.jdo.datanucleus.DataNucleusObjectStore#executeCommands(DataNucleusObjectStore.java:361)
      org.apache.isis.objectstore.jdo.datanucleus.DataNucleusObjectStore#execute(DataNucleusObjectStore.java:355)
      org.apache.isis.core.runtime.system.transaction.IsisTransaction#doFlush(IsisTransaction.java:388)
      org.apache.isis.core.runtime.system.transaction.IsisTransaction#flush(IsisTransaction.java:337)
      org.apache.isis.core.runtime.system.transaction.IsisTransactionManager#flushTransaction(IsisTransactionManager.java:298)
      org.apache.isis.core.runtime.persistence.internal.RuntimeContextFromSession$7#flush(RuntimeContextFromSession.java:221)
      org.apache.isis.core.metamodel.services.container.DomainObjectContainerDefault#flush(DomainObjectContainerDefault.java:229)
      org.apache.isis.core.metamodel.services.container.DomainObjectContainerDefault#allMatches(DomainObjectContainerDefault.java:402)
      org.apache.isis.applib.AbstractContainedObject#allMatches(AbstractContainedObject.java:175)
      org.estatio.dom.EstatioDomainService#allMatches(EstatioDomainService.java:70)
      org.estatio.dom.communicationchannel.CommunicationChannels#findByOwner(CommunicationChannels.java:113)
      org.estatio.dom.communicationchannel.CommunicationChannelContributions#communicationChannels(CommunicationChannelContributions.java:159)
      org.estatio.dom.party.OrganisationChangedPayload#getCommunicationChannels(OrganisationChangedPayload.java:49)
      sun.reflect.NativeMethodAccessorImpl#invoke0(NativeMethodAccessorImpl.java:-2)
      sun.reflect.NativeMethodAccessorImpl#invoke(NativeMethodAccessorImpl.java:57)
      sun.reflect.DelegatingMethodAccessorImpl#invoke(DelegatingMethodAccessorImpl.java:43)
      java.lang.reflect.Method#invoke(Method.java:606)
      org.apache.isis.core.commons.lang.MethodExtensions#invoke(MethodExtensions.java:50)
      org.apache.isis.core.commons.lang.MethodExtensions#invoke(MethodExtensions.java:45)
      org.apache.isis.core.metamodel.adapter.util.AdapterInvokeUtils#invoke(AdapterInvokeUtils.java:44)
      org.apache.isis.core.progmodel.facets.collections.accessor.CollectionAccessorFacetViaAccessor#getProperty(CollectionAccessorFacetViaAccessor.java:69)
      org.apache.isis.core.metamodel.specloader.specimpl.OneToManyAssociationImpl#get(OneToManyAssociationImpl.java:149)
      org.apache.isis.viewer.restfulobjects.rendering.domainobjects.ObjectCollectionReprRenderer#addValue(ObjectCollectionReprRenderer.java:73)
      org.apache.isis.viewer.restfulobjects.rendering.domainobjects.ObjectCollectionReprRenderer#render(ObjectCollectionReprRenderer.java:55)
      org.apache.isis.viewer.restfulobjects.rendering.domainobjects.DomainObjectReprRenderer#addAssociations(DomainObjectReprRenderer.java:264)
      org.apache.isis.viewer.restfulobjects.rendering.domainobjects.DomainObjectReprRenderer#withMembers(DomainObjectReprRenderer.java:212)
      org.apache.isis.viewer.restfulobjects.rendering.domainobjects.DomainObjectReprRenderer#render(DomainObjectReprRenderer.java:150)
      org.apache.isis.viewer.restfulobjects.rendering.eventserializer.RestfulObjectsSpecEventSerializer#asPayloadRepr(RestfulObjectsSpecEventSerializer.java:99)
      org.apache.isis.viewer.restfulobjects.rendering.eventserializer.RestfulObjectsSpecEventSerializer#serialize(RestfulObjectsSpecEventSerializer.java:75)
      org.apache.isis.objectstore.jdo.applib.service.publish.PublishingServiceJdo#publish(PublishingServiceJdo.java:48)
      org.apache.isis.core.runtime.persistence.objectstore.transaction.PublishingServiceWithDefaultPayloadFactories#publishObject(PublishingServiceWithDefaultPayloadFactories.java:90)
      org.apache.isis.core.runtime.system.transaction.IsisTransaction#publishedChangedObjectsIfRequired(IsisTransaction.java:478)
      org.apache.isis.core.runtime.system.transaction.IsisTransaction#commit(IsisTransaction.java:596)
      org.apache.isis.core.runtime.system.transaction.IsisTransactionManager#endTransaction(IsisTransactionManager.java:383)
      org.apache.isis.viewer.wicket.viewer.integration.wicket.WebRequestCycleForIsis#onRequestHandlerExecuted(WebRequestCycleForIsis.java:101)
      org.apache.wicket.request.cycle.RequestCycleListenerCollection$8#notify(RequestCycleListenerCollection.java:195)
      org.apache.wicket.request.cycle.RequestCycleListenerCollection$8#notify(RequestCycleListenerCollection.java:191)
      org.apache.wicket.util.listener.ListenerCollection#notify(ListenerCollection.java:80)
      org.apache.wicket.request.cycle.RequestCycleListenerCollection#onRequestHandlerExecuted(RequestCycleListenerCollection.java:190)
      org.apache.wicket.request.cycle.RequestCycleListenerCollection$8#notify(RequestCycleListenerCollection.java:195)
      org.apache.wicket.request.cycle.RequestCycleListenerCollection$8#notify(RequestCycleListenerCollection.java:191)
      org.apache.wicket.util.listener.ListenerCollection#notify(ListenerCollection.java:80)
      org.apache.wicket.request.cycle.RequestCycleListenerCollection#onRequestHandlerExecuted(RequestCycleListenerCollection.java:190)
      org.apache.wicket.request.cycle.RequestCycle#execute(RequestCycle.java:262)
      org.apache.wicket.request.cycle.RequestCycle#processRequest(RequestCycle.java:218)
      org.apache.wicket.request.cycle.RequestCycle#processRequestAndDetach(RequestCycle.java:289)
      org.apache.wicket.protocol.http.WicketFilter#processRequestCycle(WicketFilter.java:259)
      org.apache.wicket.protocol.http.WicketFilter#processRequest(WicketFilter.java:201)
      org.apache.wicket.protocol.http.WicketFilter#doFilter(WicketFilter.java:282)
      org.mortbay.jetty.servlet.ServletHandler$CachedChain#doFilter(ServletHandler.java:1157)
      org.apache.shiro.web.servlet.AbstractShiroFilter#executeChain(AbstractShiroFilter.java:449)
      org.apache.shiro.web.servlet.AbstractShiroFilter$1#call(AbstractShiroFilter.java:365)
      org.apache.shiro.subject.support.SubjectCallable#doCall(SubjectCallable.java:90)
      org.apache.shiro.subject.support.SubjectCallable#call(SubjectCallable.java:83)
      org.apache.shiro.subject.support.DelegatingSubject#execute(DelegatingSubject.java:383)
      org.apache.shiro.web.servlet.AbstractShiroFilter#doFilterInternal(AbstractShiroFilter.java:362)
      org.apache.shiro.web.servlet.OncePerRequestFilter#doFilter(OncePerRequestFilter.java:125)
      org.mortbay.jetty.servlet.ServletHandler$CachedChain#doFilter(ServletHandler.java:1157)
      org.mortbay.jetty.servlet.ServletHandler#handle(ServletHandler.java:388)
      org.mortbay.jetty.security.SecurityHandler#handle(SecurityHandler.java:216)
      org.mortbay.jetty.servlet.SessionHandler#handle(SessionHandler.java:182)
      org.mortbay.jetty.handler.ContextHandler#handle(ContextHandler.java:765)
      org.mortbay.jetty.webapp.WebAppContext#handle(WebAppContext.java:440)
      org.mortbay.jetty.handler.ContextHandlerCollection#handle(ContextHandlerCollection.java:230)
      org.mortbay.jetty.handler.HandlerCollection#handle(HandlerCollection.java:114)
      org.mortbay.jetty.handler.HandlerWrapper#handle(HandlerWrapper.java:152)
      org.mortbay.jetty.Server#handle(Server.java:326)
      org.mortbay.jetty.HttpConnection#handleRequest(HttpConnection.java:542)
      org.mortbay.jetty.HttpConnection$RequestHandler#headerComplete(HttpConnection.java:926)
      org.mortbay.jetty.HttpParser#parseNext(HttpParser.java:549)
      org.mortbay.jetty.HttpParser#parseAvailable(HttpParser.java:212)
      org.mortbay.jetty.HttpConnection#handle(HttpConnection.java:404)
      org.mortbay.io.nio.SelectChannelEndPoint#run(SelectChannelEndPoint.java:410)
      org.mortbay.thread.QueuedThreadPool$PoolThread#run(QueuedThreadPool.java:582)
      org.datanucleus.exceptions.NucleusUserException
      Attempt to store value "bec9ff8b-c903-4efd-a834-18ba918d8e6b.0" in column ""id"" that has maximum length of 32. Please correct your data!
      org.datanucleus.store.rdbms.mapping.datastore.CharRDBMSMapping#setString(CharRDBMSMapping.java:273)
      org.datanucleus.store.rdbms.mapping.java.SingleFieldMapping#setString(SingleFieldMapping.java:201)
      org.datanucleus.store.rdbms.fieldmanager.ParameterSetter#storeStringField(ParameterSetter.java:159)
      org.datanucleus.state.JDOStateManager#providedStringField(JDOStateManager.java:1256)
      org.apache.isis.objectstore.jdo.applib.service.publish.PublishedEvent#jdoProvideField(PublishedEvent.java:-1)
      org.apache.isis.objectstore.jdo.applib.service.publish.PublishedEvent#jdoProvideFields(PublishedEvent.java:-1)
      org.datanucleus.state.JDOStateManager#provideFields(JDOStateManager.java:1346)
      org.datanucleus.store.rdbms.request.InsertRequest#execute(InsertRequest.java:264)
      org.datanucleus.store.rdbms.RDBMSPersistenceHandler#insertTable(RDBMSPersistenceHandler.java:167)
      org.datanucleus.store.rdbms.RDBMSPersistenceHandler#insertObject(RDBMSPersistenceHandler.java:143)
      org.datanucleus.state.JDOStateManager#internalMakePersistent(JDOStateManager.java:3776)
      org.datanucleus.state.JDOStateManager#makePersistent(JDOStateManager.java:3752)
      org.datanucleus.ExecutionContextImpl#persistObjectInternal(ExecutionContextImpl.java:2199)
      org.datanucleus.ExecutionContextImpl#persistObjectWork(ExecutionContextImpl.java:2045)
      org.datanucleus.ExecutionContextImpl#persistObject(ExecutionContextImpl.java:1893)
      org.datanucleus.api.jdo.JDOPersistenceManager#jdoMakePersistent(JDOPersistenceManager.java:727)
      org.datanucleus.api.jdo.JDOPersistenceManager#makePersistent(JDOPersistenceManager.java:752)
      org.apache.isis.objectstore.jdo.datanucleus.persistence.commands.DataNucleusCreateObjectCommand#execute(DataNucleusCreateObjectCommand.java:54)
      org.apache.isis.objectstore.jdo.datanucleus.DataNucleusObjectStore#executeCommands(DataNucleusObjectStore.java:361)
      org.apache.isis.objectstore.jdo.datanucleus.DataNucleusObjectStore#execute(DataNucleusObjectStore.java:355)
      org.apache.isis.core.runtime.system.transaction.IsisTransaction#doFlush(IsisTransaction.java:388)
      org.apache.isis.core.runtime.system.transaction.IsisTransaction#flush(IsisTransaction.java:337)
      org.apache.isis.core.runtime.system.transaction.IsisTransactionManager#flushTransaction(IsisTransactionManager.java:298)
      org.apache.isis.core.runtime.persistence.internal.RuntimeContextFromSession$7#flush(RuntimeContextFromSession.java:221)
      org.apache.isis.core.metamodel.services.container.DomainObjectContainerDefault#flush(DomainObjectContainerDefault.java:229)
      org.apache.isis.core.metamodel.services.container.DomainObjectContainerDefault#allMatches(DomainObjectContainerDefault.java:402)
      org.apache.isis.applib.AbstractContainedObject#allMatches(AbstractContainedObject.java:175)
      org.estatio.dom.EstatioDomainService#allMatches(EstatioDomainService.java:70)
      org.estatio.dom.communicationchannel.CommunicationChannels#findByOwner(CommunicationChannels.java:113)
      org.estatio.dom.communicationchannel.CommunicationChannelContributions#communicationChannels(CommunicationChannelContributions.java:159)
      org.estatio.dom.party.OrganisationChangedPayload#getCommunicationChannels(OrganisationChangedPayload.java:49)
      sun.reflect.NativeMethodAccessorImpl#invoke0(NativeMethodAccessorImpl.java:-2)
      sun.reflect.NativeMethodAccessorImpl#invoke(NativeMethodAccessorImpl.java:57)
      sun.reflect.DelegatingMethodAccessorImpl#invoke(DelegatingMethodAccessorImpl.java:43)
      java.lang.reflect.Method#invoke(Method.java:606)
      org.apache.isis.core.commons.lang.MethodExtensions#invoke(MethodExtensions.java:50)
      org.apache.isis.core.commons.lang.MethodExtensions#invoke(MethodExtensions.java:45)
      org.apache.isis.core.metamodel.adapter.util.AdapterInvokeUtils#invoke(AdapterInvokeUtils.java:44)
      org.apache.isis.core.progmodel.facets.collections.accessor.CollectionAccessorFacetViaAccessor#getProperty(CollectionAccessorFacetViaAccessor.java:69)
      org.apache.isis.core.metamodel.specloader.specimpl.OneToManyAssociationImpl#get(OneToManyAssociationImpl.java:149)
      org.apache.isis.viewer.restfulobjects.rendering.domainobjects.ObjectCollectionReprRenderer#addValue(ObjectCollectionReprRenderer.java:73)
      org.apache.isis.viewer.restfulobjects.rendering.domainobjects.ObjectCollectionReprRenderer#render(ObjectCollectionReprRenderer.java:55)
      org.apache.isis.viewer.restfulobjects.rendering.domainobjects.DomainObjectReprRenderer#addAssociations(DomainObjectReprRenderer.java:264)
      org.apache.isis.viewer.restfulobjects.rendering.domainobjects.DomainObjectReprRenderer#withMembers(DomainObjectReprRenderer.java:212)
      org.apache.isis.viewer.restfulobjects.rendering.domainobjects.DomainObjectReprRenderer#render(DomainObjectReprRenderer.java:150)
      org.apache.isis.viewer.restfulobjects.rendering.eventserializer.RestfulObjectsSpecEventSerializer#asPayloadRepr(RestfulObjectsSpecEventSerializer.java:99)
      org.apache.isis.viewer.restfulobjects.rendering.eventserializer.RestfulObjectsSpecEventSerializer#serialize(RestfulObjectsSpecEventSerializer.java:75)
      org.apache.isis.objectstore.jdo.applib.service.publish.PublishingServiceJdo#publish(PublishingServiceJdo.java:48)
      org.apache.isis.core.runtime.persistence.objectstore.transaction.PublishingServiceWithDefaultPayloadFactories#publishObject(PublishingServiceWithDefaultPayloadFactories.java:90)
      org.apache.isis.core.runtime.system.transaction.IsisTransaction#publishedChangedObjectsIfRequired(IsisTransaction.java:478)
      org.apache.isis.core.runtime.system.transaction.IsisTransaction#commit(IsisTransaction.java:596)
      org.apache.isis.core.runtime.system.transaction.IsisTransactionManager#endTransaction(IsisTransactionManager.java:383)
      org.apache.isis.viewer.wicket.viewer.integration.wicket.WebRequestCycleForIsis#onRequestHandlerExecuted(WebRequestCycleForIsis.java:101)
      org.apache.wicket.request.cycle.RequestCycleListenerCollection$8#notify(RequestCycleListenerCollection.java:195)
      org.apache.wicket.request.cycle.RequestCycleListenerCollection$8#notify(RequestCycleListenerCollection.java:191)
      org.apache.wicket.util.listener.ListenerCollection#notify(ListenerCollection.java:80)
      org.apache.wicket.request.cycle.RequestCycleListenerCollection#onRequestHandlerExecuted(RequestCycleListenerCollection.java:190)
      org.apache.wicket.request.cycle.RequestCycleListenerCollection$8#notify(RequestCycleListenerCollection.java:195)
      org.apache.wicket.request.cycle.RequestCycleListenerCollection$8#notify(RequestCycleListenerCollection.java:191)
      org.apache.wicket.util.listener.ListenerCollection#notify(ListenerCollection.java:80)
      org.apache.wicket.request.cycle.RequestCycleListenerCollection#onRequestHandlerExecuted(RequestCycleListenerCollection.java:190)
      org.apache.wicket.request.cycle.RequestCycle#execute(RequestCycle.java:262)
      org.apache.wicket.request.cycle.RequestCycle#processRequest(RequestCycle.java:218)
      org.apache.wicket.request.cycle.RequestCycle#processRequestAndDetach(RequestCycle.java:289)
      org.apache.wicket.protocol.http.WicketFilter#processRequestCycle(WicketFilter.java:259)
      org.apache.wicket.protocol.http.WicketFilter#processRequest(WicketFilter.java:201)
      org.apache.wicket.protocol.http.WicketFilter#doFilter(WicketFilter.java:282)
      org.mortbay.jetty.servlet.ServletHandler$CachedChain#doFilter(ServletHandler.java:1157)
      org.apache.shiro.web.servlet.AbstractShiroFilter#executeChain(AbstractShiroFilter.java:449)
      org.apache.shiro.web.servlet.AbstractShiroFilter$1#call(AbstractShiroFilter.java:365)
      org.apache.shiro.subject.support.SubjectCallable#doCall(SubjectCallable.java:90)
      org.apache.shiro.subject.support.SubjectCallable#call(SubjectCallable.java:83)
      org.apache.shiro.subject.support.DelegatingSubject#execute(DelegatingSubject.java:383)
      org.apache.shiro.web.servlet.AbstractShiroFilter#doFilterInternal(AbstractShiroFilter.java:362)
      org.apache.shiro.web.servlet.OncePerRequestFilter#doFilter(OncePerRequestFilter.java:125)
      org.mortbay.jetty.servlet.ServletHandler$CachedChain#doFilter(ServletHandler.java:1157)
      org.mortbay.jetty.servlet.ServletHandler#handle(ServletHandler.java:388)
      org.mortbay.jetty.security.SecurityHandler#handle(SecurityHandler.java:216)
      org.mortbay.jetty.servlet.SessionHandler#handle(SessionHandler.java:182)
      org.mortbay.jetty.handler.ContextHandler#handle(ContextHandler.java:765)
      org.mortbay.jetty.webapp.WebAppContext#handle(WebAppContext.java:440)
      org.mortbay.jetty.handler.ContextHandlerCollection#handle(ContextHandlerCollection.java:230)
      org.mortbay.jetty.handler.HandlerCollection#handle(HandlerCollection.java:114)
      org.mortbay.jetty.handler.HandlerWrapper#handle(HandlerWrapper.java:152)
      org.mortbay.jetty.Server#handle(Server.java:326)
      org.mortbay.jetty.HttpConnection#handleRequest(HttpConnection.java:542)
      org.mortbay.jetty.HttpConnection$RequestHandler#headerComplete(HttpConnection.java:926)
      org.mortbay.jetty.HttpParser#parseNext(HttpParser.java:549)
      org.mortbay.jetty.HttpParser#parseAvailable(HttpParser.java:212)
      org.mortbay.jetty.HttpConnection#handle(HttpConnection.java:404)
      org.mortbay.io.nio.SelectChannelEndPoint#run(SelectChannelEndPoint.java:410)
      org.mortbay.thread.QueuedThreadPool$PoolThread#run(QueuedThreadPool.java:582)

      Attachments

        Activity

          People

            danhaywood Daniel Keir Haywood
            danhaywood Daniel Keir Haywood
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: