MessageNotUnderstood: MaMalformedRequestError>>repositoryController:

Chris Muller asqueaker at gmail.com
Fri Dec 14 04:22:31 UTC 2007


Hi Hilaire, for whatever class you are getting "id not found" look in
your client at this path:

  theMagmaSession
   link
      serializer
        classIdManager
           classesById

In 'classesById' look for the id of the class the server image is
claiming is not found.  THAT is the class of the object that is
causing the problem.

Is that the IFICompetencyCollection ?  What is IFICompetencyCollection ?

Regards,
  Chris

On Dec 12, 2007 6:26 AM, Hilaire Fernandes <hilaire at ofset.org> wrote:
> Thanks for your advices, it is helpful.
>
> In this place of the application I am not using read strategy.
> In other place of the application where I am suing read strategy I don't
> have the problem, so may be it is a problem underneath.
>
> In the Magma client I only have the modification to
> StrikeFont>>maAsStorageObject so TextMorph are persisted correctly. I
> apply this change both to client and server :
>
> StrikeFont>>maAsStorageObject
> ^ DiskProxy
>    global: #StrikeFont selector: #familyName:pointSize:emphasized:
>    args: { self familyName.  self pointSize.  self emphasis }
>
>
> Chris, I went until the MaTcp...>>submit: method, but I don't really
> understand where to look.
>
> From the MaCommitPackage, the MagmaCollectionChanges looks like:
>
> collectionOid:  4112481
> changes:        a Dictionary(#added->an IdentityDictionary(66543->an
> OrderedCollection(#(250776336) #(0) #(10625597) an IFILevelCollection()
> #(1)) ) #removed->an IdentityDictionary() )
> isNewCollection: false
> collection:     a MagmaCollection
>
>
> The problem happens when I add an object to a MagmaCollection
>
> IFIDbSession commit: [pedagogicalMoments add: moment]
>
> In this commit, TextMorph persitency occurs.
> I repeat this code is working when Magma is in local mode.
>
>
> In the client, MagmaRepositoryController basicNew protocol
> returns, where only IFICompetencyCollection is new (the server has the
> same protocol size):
>
>  {LargePositiveInteger . MaSerializedGraphBuffer . MaByteObjectBuffer .
> MaVariableWordBuffer . MaVariableObjectBuffer . MaFixedObjectBuffer .
> MaStorageObjectBuffer . MaVariableBuffer .
> MaLargeCollectionSegmentRequest . MaLoadProgressRequest .
> MaRefreshSegmentRequest . MaDownloadCodeRequest .
> MaLoadFromReaderRequest . MaReaderTrunkRequest .
> MaAbortTransactionRequest . MaRepositoryConnectionRequest .
> MaWriteRequest . MagmaPathNameRequest . MaCloseRepositoryRequest .
> MaLargeCollectionSizeRequest . MaAbstractReadRequest .
> MaTransactionRequest . MagmaIdRequest . MaAnchorRequest .
> MaReadRequest . MaKeyIntervalInfoRequest . MaSegmentByIndexRequest .
> MaRepositoryDisconnectRequest . MaCommitPackage . MaBasicReadStrategy .
> MaReadStrategy . MagmaCollectionSegment . MaRefreshViewResult .
> MaReadResult . MagmaLargeCollectionSegment . MaCommitResult .
> MagmaCollectionReaderSegment . MaFailedCommitResult . MagmaId . UUID .
> MaFailedCommitResult . MagmaClientConnection . MagmaCommitConflict .
> Fraction . MaClause . MaExpression . MaQueryTrunkClause . MaQueryTrunk .
> MagmaSet . IFICompetencyCollection . MagmaCollection .
> IdentityDictionary . MagmaIndexDescription . MagmaArrayChanges .
> MagmaCollectionChanges . Association . MaChangedKeySpecification .
> MaEnvironmentError . MaObjectSerializationUserError .
> MaUnreadableRecoveryRecord . MagmaEquivalentObjectNotInCollection .
> MagmaSoftwareError . MaNetworkError . MagmaSessionLost .
> MagmaEnvironmentError . MaObjectSerializationSecurityViolation .
> MaHashIndexUserError . MagmaUserError . MagmaInvalidIndexObject .
> MagmaCommitError . MaClientServerUserError . MagmaCorruptionError .
> MaSecurityViolation . MagmaGarbageCollectedObject .
> MagmaDuplicateObjectInCollection . MaSoftwareError . MaCorruptionError .
> MagmaInvalidOid . MaUserError . MaMalformedRequestError .
> MaObjectSerializationSoftwareError . MaSpecialCollectionsSoftwareError}
>
> Le mardi 11 décembre 2007 à 23:06 -0500, Chris Muller a écrit :
>
> > Hi Hilaire, a the MalformedRequest error is telling you the server
> > received a request from your client that it could not properly
> > materialize.  Specifically, it looks like your Magma client has
> > attempted to extend the Magma #protocol ("class id not found").  Are
> > you running a modified Magma client?
> >
> > It does look like the error-handling code incorrectly passes the
> > MalformedRequestError Exception AS the request which is, of course, a
> > bug.  I will fix that, so that it kick the error back to your client
> > as it should.
> >
> > But I know you are interested in the cause of the error itself.  When
> > you get this error, you should break into your client and look in teh
> > debugger at the request it passed to the server.  Look at ALL the
> > arguments and find which object whose class is not included in this
> > Array:
> >
> >   MagmaRepositoryController basicNew protocol
> >
> > THAT is the one that is causing the problem.
> >
> >  - Chris
>
> _______________________________________________
> Magma mailing list
> Magma at lists.squeakfoundation.org
> http://lists.squeakfoundation.org/mailman/listinfo/magma
>
>


More information about the Magma mailing list