Re: Primitive Object>>isImmutable: failed (0)
- From: Jochen Riekhof <jochen@xxxxxxxxxxxxxxxx>
- Date: Wed, 23 Jul 2008 17:39:17 +0200
Hi Tim...
> Its worth getting into the habbit of always deploying from a clean image
> (I have a little tool that does this for me) as you can sometimes catch
> these little gotcha's earlier if you deploy frequently.
Thank you for this! After this experience, it sounds like a splendid idea :-).
Please see my other post to this thread for the resolution of this issue.
Ciao
....Jochen
Tim M schrieb:
Hi Jochen,.
Sorry I have nothing to offer - except the image I am using has the newer version of byteCodes: (its a 6.02) image. I am not doing any encryption stuff so I don't know if we are comparing like with like.
Its worth getting into the habbit of always deploying from a clean image (I have a little tool that does this for me) as you can sometimes catch these little gotcha's earlier if you deploy frequently.
Tim
Hi...
an update: it seems that my old image is different to the new one
regarding CompiledCode>>byteCodes:. The old method is a simple setter
while the new (crashing) one does a lot about packing and sets
immutable. The image major version is the same for both images,
though?!? Could anybody tell when this change was incorporated?
I could fix the crashing on startup with this code in the new image:
codss class == SmallInteger ifFalse: [codes isImmutable:true].
self assert: [codes isImmutable].
The added assert is also always true as SmalInteger instances are
always
immutable.
Of course, albeit the App works fine now deployed from the new image
including encryption this makes me a bit uneasy as noone else seems to
have experienced this yet. Any ideas?
Ciao
...Jochen
Jochen Riekhof schrieb:
Hi...
facing a problem I have no still no idea about the cause after two
days of elaborating i now decided ask for help.
After a long time of development using a single image I now tried to
load the relevant packages into a fresh image and deploy my app just
to check that this is working when I need it. I loaded the packages
both via StS Project and manually fromFile system.
Inside the new image (freshly generated Professional.img), everything
works great, but when I deploy my application using the new image,
and then try to start the resulting app, it fails with the error
message shown in the topic line. Deploying from the original image
(located in the same folder as the new one) works just fine! They use
the same ToGo executable.
(Yes, I added the missing three methods to
ProtectedProductSerialNumber :-)).
I never saw such a message before (interesting portion of stack trace
appended). I at first suspected my encoding / decoding methods (I
have my own pure ST versions of SecureHashAlgorithm and PC1Cipher to
be independent of the Crypto dll). Indeed, when disabling encryption
altogether by returning an empty array from
MySessionManager>>encryptedPackageNames the deployed app works also
from the new image (in this case no isImmutable: calls are issued).
returning just one single small encrypted package spoils it again,
though.
I then logged out my encryption / decryption and it seems to work
just fine, but after decoding the third method bytecode it suddenly
fails with the above meassage when attempting to set the (correctly
decoded) byteCodes.
I also used the original dll-dependent classes but there it failed
the same way.
The code where it fails is in
CompiledMethod(CompiledCode)>>byteCodes:, near the bottom of the
method there is the offending setImmutable: call.
One failing byte code array to be set is #[171 17 177 105] (the
encrypted one was #[248 176 156 217]).
I really have no clues what to do next (this is a primitive failing
an a SmallInteger) and would highly appreciate any help!
Ciao
...Jochen
<snip>
{092703A4: cf 09270385, sp 092703B8, bp 092703A0, ip 2,
SmallInteger(Object)>>isImmutable:}
receiver: 886606037
arg[0]: true
{09270384: cf 09270361, sp 09270398, bp 09270380, ip 75,
CompiledMethod(CompiledCode)>>byteCodes:}
receiver: JRDBASourceCodeRef>>addDescriptor:
arg[0]: a ByteArray
env temp[0]: 886606037
env temp[1]: nil
{09270360: cf 09270331, sp 09270378, bp 0927034C, ip 81,
JRPC1ProductProtector>>cipherMethod:}
receiver: a JRPC1ProductProtector
arg[0]: JRDBASourceCodeRef>>addDescriptor:
stack temp[0]: a JRPC1Cipher
stack temp[1]: a ByteArray
stack temp[2]: a ByteArray
stack temp[3]: a FileStream
</snip>
- References:
- Re: Primitive Object>>isImmutable: failed (0)
- From: Jochen Riekhof
- Re: Primitive Object>>isImmutable: failed (0)
- From: Tim M
- Re: Primitive Object>>isImmutable: failed (0)
- Prev by Date: Re: Primitive Object>>isImmutable: failed (0)
- Next by Date: Re: Primitive Object>>isImmutable: failed (0)
- Previous by thread: Re: Primitive Object>>isImmutable: failed (0)
- Next by thread: Re: Primitive Object>>isImmutable: failed (0)
- Index(es):
Relevant Pages
|