You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@isis.apache.org by "ASF subversion and git services (JIRA)" <ji...@apache.org> on 2013/12/12 13:47:08 UTC

[jira] [Commented] (ISIS-632) PublishingService's PublishedEvent id has an incorrect max length

    [ https://issues.apache.org/jira/browse/ISIS-632?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13846282#comment-13846282 ] 

ASF subversion and git services commented on ISIS-632:
------------------------------------------------------

Commit 08d5ca7b027a44da748700823bf2266dfe63bea9 in branch refs/heads/master from [~danhaywood]
[ https://git-wip-us.apache.org/repos/asf?p=isis.git;h=08d5ca7 ]

ISIS-632: PublishedEvent#id set to 42 chars.


> PublishingService's PublishedEvent id has an incorrect max length
> -----------------------------------------------------------------
>
>                 Key: ISIS-632
>                 URL: https://issues.apache.org/jira/browse/ISIS-632
>             Project: Isis
>          Issue Type: Bug
>          Components: Objectstore: JDO
>    Affects Versions: objectstore-jdo-1.3.0
>            Reporter: Dan Haywood
>            Assignee: Dan Haywood
>             Fix For: objectstore-jdo-1.4.0
>
>
> 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.  there is in theory no upper limit to this, but in practice it seems unlikely to be more than a few hundred. Allowing for 99,999 (ie 5 characters) seems appropriate.
> Therefore the length should be 36 + 1 + 5 = 42 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)



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)