Saxon Choose class exception on WAS 6.1
Added by Anonymous over 17 years ago
Legacy ID: #4423534 Legacy Poster: pafawa (pafawa)
Hi I'm using IBM WebSphere Application Server for z/OS version 6.1. WAS is running on java 1.5. Application that runs under jboss 4 fine under WAS throws the following exception. (I'm using Saxon 8.9 through JAXP). The most strange thing about this case is that the very same application, with the same saxon library runs fine on JBOSS (basically the same ear file, but expanded with specific jboss depolyment descriptors). java.lang.ArrayIndexOutOfBoundsException at net.sf.saxon.instruct.Choose.processLeavingTail(Choose.java:349) at net.sf.saxon.instruct.Block.processLeavingTail(Block.java:365) at net.sf.saxon.instruct.Template.expand(Template.java:112) at net.sf.saxon.instruct.CallTemplate.process(CallTemplate.java:212) at net.sf.saxon.instruct.DocumentInstr.evaluateItem(DocumentInstr.java:243) at net.sf.saxon.instruct.Instruction.iterate(Instruction.java:320) at net.sf.saxon.expr.SingletonAtomizer.evaluateItem(SingletonAtomizer.java:103) at net.sf.saxon.functions.Concat.evaluateItem(Concat.java:38) at net.sf.saxon.instruct.SimpleContentConstructor.evaluateItem(SimpleContentConstructor.java:216) at net.sf.saxon.instruct.ValueOf.processLeavingTail(ValueOf.java:198) at net.sf.saxon.expr.LetExpression.processLeavingTail(LetExpression.java:405) at net.sf.saxon.instruct.Choose.processLeavingTail(Choose.java:347) at net.sf.saxon.instruct.Block.processLeavingTail(Block.java:365) at net.sf.saxon.instruct.Template.expand(Template.java:112) at net.sf.saxon.instruct.CallTemplate.process(CallTemplate.java:212) at net.sf.saxon.instruct.DocumentInstr.evaluateItem(DocumentInstr.java:243) at net.sf.saxon.instruct.Instruction.iterate(Instruction.java:320) at net.sf.saxon.expr.SingletonAtomizer.evaluateItem(SingletonAtomizer.java:103) at net.sf.saxon.functions.Concat.evaluateItem(Concat.java:38) at net.sf.saxon.instruct.SimpleContentConstructor.evaluateItem(SimpleContentConstructor.java:216) at net.sf.saxon.instruct.ValueOf.processLeavingTail(ValueOf.java:198) at net.sf.saxon.expr.LetExpression.processLeavingTail(LetExpression.java:405) at net.sf.saxon.instruct.Choose.processLeavingTail(Choose.java:347) at net.sf.saxon.instruct.Block.processLeavingTail(Block.java:365) at net.sf.saxon.instruct.Template.expand(Template.java:112) at net.sf.saxon.instruct.CallTemplate.process(CallTemplate.java:212) at net.sf.saxon.instruct.DocumentInstr.evaluateItem(DocumentInstr.java:243) at net.sf.saxon.instruct.Instruction.iterate(Instruction.java:320) at net.sf.saxon.expr.SingletonAtomizer.evaluateItem(SingletonAtomizer.java:103) at net.sf.saxon.functions.Concat.evaluateItem(Concat.java:38) at net.sf.saxon.instruct.SimpleContentConstructor.evaluateItem(SimpleContentConstructor.java:216) at net.sf.saxon.instruct.ValueOf.processLeavingTail(ValueOf.java:198) at net.sf.saxon.expr.LetExpression.processLeavingTail(LetExpression.java:405) at net.sf.saxon.instruct.Choose.processLeavingTail(Choose.java:347) at net.sf.saxon.instruct.Block.processLeavingTail(Block.java:365) at net.sf.saxon.instruct.Template.expand(Template.java:112) at net.sf.saxon.instruct.CallTemplate.process(CallTemplate.java:212) at net.sf.saxon.instruct.DocumentInstr.evaluateItem(DocumentInstr.java:243) at net.sf.saxon.instruct.Instruction.iterate(Instruction.java:320) at net.sf.saxon.expr.SingletonAtomizer.evaluateItem(SingletonAtomizer.java:103) at net.sf.saxon.functions.Concat.evaluateItem(Concat.java:38) at net.sf.saxon.instruct.SimpleContentConstructor.evaluateItem(SimpleContentConstructor.java:216) at net.sf.saxon.instruct.ValueOf.processLeavingTail(ValueOf.java:198) at net.sf.saxon.expr.LetExpression.processLeavingTail(LetExpression.java:405) at net.sf.saxon.instruct.Choose.processLeavingTail(Choose.java:347) at net.sf.saxon.instruct.Block.processLeavingTail(Block.java:365) at net.sf.saxon.instruct.Template.expand(Template.java:112) at net.sf.saxon.instruct.CallTemplate.process(CallTemplate.java:212) at net.sf.saxon.instruct.DocumentInstr.evaluateItem(DocumentInstr.java:243) at net.sf.saxon.instruct.Instruction.iterate(Instruction.java:320) at net.sf.saxon.expr.SingletonAtomizer.evaluateItem(SingletonAtomizer.java:103) at net.sf.saxon.functions.Concat.evaluateItem(Concat.java:38) at net.sf.saxon.instruct.SimpleContentConstructor.evaluateItem(SimpleContentConstructor.java:216) at net.sf.saxon.instruct.ValueOf.processLeavingTail(ValueOf.java:198) at net.sf.saxon.expr.LetExpression.processLeavingTail(LetExpression.java:405) at net.sf.saxon.instruct.Choose.processLeavingTail(Choose.java:347) at net.sf.saxon.instruct.Block.processLeavingTail(Block.java:365) at net.sf.saxon.instruct.Template.expand(Template.java:112) at net.sf.saxon.instruct.CallTemplate.process(CallTemplate.java:212) at net.sf.saxon.instruct.DocumentInstr.evaluateItem(DocumentInstr.java:243) at net.sf.saxon.instruct.Instruction.iterate(Instruction.java:320) at net.sf.saxon.expr.SingletonAtomizer.evaluateItem(SingletonAtomizer.java:103) at net.sf.saxon.functions.Concat.evaluateItem(Concat.java:38) at net.sf.saxon.instruct.SimpleContentConstructor.evaluateItem(SimpleContentConstructor.java:216) at net.sf.saxon.instruct.ValueOf.processLeavingTail(ValueOf.java:198) at net.sf.saxon.expr.LetExpression.processLeavingTail(LetExpression.java:405) at net.sf.saxon.instruct.Choose.processLeavingTail(Choose.java:347) at net.sf.saxon.instruct.Block.processLeavingTail(Block.java:365) at net.sf.saxon.instruct.Template.expand(Template.java:112) at net.sf.saxon.instruct.CallTemplate.process(CallTemplate.java:212) at net.sf.saxon.instruct.DocumentInstr.evaluateItem(DocumentInstr.java:243) at net.sf.saxon.instruct.Instruction.iterate(Instruction.java:320) at net.sf.saxon.expr.SingletonAtomizer.evaluateItem(SingletonAtomizer.java:103) at net.sf.saxon.functions.Concat.evaluateItem(Concat.java:38) at net.sf.saxon.instruct.SimpleContentConstructor.evaluateItem(SimpleContentConstructor.java:216) at net.sf.saxon.instruct.ValueOf.processLeavingTail(ValueOf.java:198) at net.sf.saxon.expr.LetExpression.processLeavingTail(LetExpression.java:405) at net.sf.saxon.instruct.Choose.processLeavingTail(Choose.java:347) at net.sf.saxon.instruct.Block.processLeavingTail(Block.java:365) at net.sf.saxon.instruct.Template.expand(Template.java:112) at net.sf.saxon.instruct.CallTemplate.process(CallTemplate.java:212) at net.sf.saxon.instruct.DocumentInstr.evaluateItem(DocumentInstr.java:243) at net.sf.saxon.instruct.Instruction.iterate(Instruction.java:320) at net.sf.saxon.expr.SingletonAtomizer.evaluateItem(SingletonAtomizer.java:103) at net.sf.saxon.functions.Concat.evaluateItem(Concat.java:38) at net.sf.saxon.instruct.SimpleContentConstructor.evaluateItem(SimpleContentConstructor.java:216) at net.sf.saxon.instruct.ValueOf.processLeavingTail(ValueOf.java:198) at net.sf.saxon.expr.LetExpression.processLeavingTail(LetExpression.java:405) at net.sf.saxon.instruct.Choose.processLeavingTail(Choose.java:347) at net.sf.saxon.instruct.Block.processLeavingTail(Block.java:365) at net.sf.saxon.instruct.Template.expand(Template.java:112) at net.sf.saxon.instruct.CallTemplate.process(CallTemplate.java:212) at net.sf.saxon.instruct.DocumentInstr.evaluateItem(DocumentInstr.java:243) at net.sf.saxon.instruct.Instruction.iterate(Instruction.java:320) at net.sf.saxon.expr.SingletonAtomizer.evaluateItem(SingletonAtomizer.java:103) at net.sf.saxon.functions.Concat.evaluateItem(Concat.java:38) at net.sf.saxon.instruct.SimpleContentConstructor.evaluateItem(SimpleContentConstructor.java:216) at net.sf.saxon.instruct.ValueOf.processLeavingTail(ValueOf.java:198) at net.sf.saxon.expr.LetExpression.processLeavingTail(LetExpression.java:405) at net.sf.saxon.instruct.Choose.processLeavingTail(Choose.java:347) at net.sf.saxon.instruct.Block.processLeavingTail(Block.java:365) at net.sf.saxon.instruct.Template.expand(Template.java:112) at net.sf.saxon.instruct.CallTemplate.process(CallTemplate.java:212) at net.sf.saxon.instruct.DocumentInstr.evaluateItem(DocumentInstr.java:243) at net.sf.saxon.instruct.Instruction.iterate(Instruction.java:320) at net.sf.saxon.expr.SingletonAtomizer.evaluateItem(SingletonAtomizer.java:103) at net.sf.saxon.functions.Concat.evaluateItem(Concat.java:38) at net.sf.saxon.instruct.SimpleContentConstructor.evaluateItem(SimpleContentConstructor.java:216) at net.sf.saxon.instruct.ValueOf.processLeavingTail(ValueOf.java:198) at net.sf.saxon.expr.LetExpression.processLeavingTail(LetExpression.java:405) at net.sf.saxon.instruct.Choose.processLeavingTail(Choose.java:347) at net.sf.saxon.instruct.Block.processLeavingTail(Block.java:365) at net.sf.saxon.instruct.Template.expand(Template.java:112) at net.sf.saxon.instruct.CallTemplate.process(CallTemplate.java:212) at net.sf.saxon.instruct.DocumentInstr.evaluateItem(DocumentInstr.java:243) at net.sf.saxon.instruct.Instruction.iterate(Instruction.java:320) at net.sf.saxon.expr.SingletonAtomizer.evaluateItem(SingletonAtomizer.java:103) at net.sf.saxon.functions.Concat.evaluateItem(Concat.java:38) at net.sf.saxon.instruct.SimpleContentConstructor.evaluateItem(SimpleContentConstructor.java:216) at net.sf.saxon.instruct.ValueOf.processLeavingTail(ValueOf.java:198) at net.sf.saxon.expr.LetExpression.processLeavingTail(LetExpression.java:405) at net.sf.saxon.instruct.Choose.processLeavingTail(Choose.java:347) at net.sf.saxon.instruct.Block.processLeavingTail(Block.java:365) at net.sf.saxon.instruct.Template.expand(Template.java:112) at net.sf.saxon.instruct.CallTemplate.process(CallTemplate.java:212) at net.sf.saxon.instruct.DocumentInstr.evaluateItem(DocumentInstr.java:243) at net.sf.saxon.instruct.Instruction.iterate(Instruction.java:320) at net.sf.saxon.expr.SingletonAtomizer.evaluateItem(SingletonAtomizer.java:103) at net.sf.saxon.functions.Concat.evaluateItem(Concat.java:38) at net.sf.saxon.instruct.SimpleContentConstructor.evaluateItem(SimpleContentConstructor.java:216) at net.sf.saxon.instruct.ValueOf.processLeavingTail(ValueOf.java:198) at net.sf.saxon.expr.LetExpression.processLeavingTail(LetExpression.java:405) at net.sf.saxon.instruct.Choose.processLeavingTail(Choose.java:347) at net.sf.saxon.instruct.Block.processLeavingTail(Block.java:365) at net.sf.saxon.instruct.Template.expand(Template.java:112) at net.sf.saxon.instruct.CallTemplate.process(CallTemplate.java:212) at net.sf.saxon.instruct.DocumentInstr.evaluateItem(DocumentInstr.java:243) at net.sf.saxon.instruct.Instruction.iterate(Instruction.java:320) at net.sf.saxon.expr.SingletonAtomizer.evaluateItem(SingletonAtomizer.java:103) at net.sf.saxon.functions.Concat.evaluateItem(Concat.java:38) at net.sf.saxon.instruct.SimpleContentConstructor.evaluateItem(SimpleContentConstructor.java:216) at net.sf.saxon.instruct.ValueOf.processLeavingTail(ValueOf.java:198) at net.sf.saxon.expr.LetExpression.processLeavingTail(LetExpression.java:405) at net.sf.saxon.instruct.Choose.processLeavingTail(Choose.java:347) at net.sf.saxon.instruct.Block.processLeavingTail(Block.java:365) at net.sf.saxon.instruct.Template.expand(Template.java:112) at net.sf.saxon.instruct.CallTemplate.process(CallTemplate.java:212) at net.sf.saxon.instruct.DocumentInstr.evaluateItem(DocumentInstr.java:243) at net.sf.saxon.instruct.Instruction.iterate(Instruction.java:320) at net.sf.saxon.expr.SingletonAtomizer.evaluateItem(SingletonAtomizer.java:103) at net.sf.saxon.functions.Concat.evaluateItem(Concat.java:38) at net.sf.saxon.instruct.SimpleContentConstructor.evaluateItem(SimpleContentConstructor.java:216) at net.sf.saxon.instruct.ValueOf.processLeavingTail(ValueOf.java:198) at net.sf.saxon.expr.LetExpression.processLeavingTail(LetExpression.java:405) at net.sf.saxon.instruct.Choose.processLeavingTail(Choose.java:347) at net.sf.saxon.instruct.Block.processLeavingTail(Block.java:365) at net.sf.saxon.instruct.Template.expand(Template.java:112) at net.sf.saxon.instruct.CallTemplate.process(CallTemplate.java:212) at net.sf.saxon.instruct.DocumentInstr.evaluateItem(DocumentInstr.java:243) at net.sf.saxon.instruct.Instruction.iterate(Instruction.java:320) at net.sf.saxon.expr.SingletonAtomizer.evaluateItem(SingletonAtomizer.java:103) at net.sf.saxon.functions.Concat.evaluateItem(Concat.java:38) at net.sf.saxon.instruct.SimpleContentConstructor.evaluateItem(SimpleContentConstructor.java:216) at net.sf.saxon.instruct.ValueOf.processLeavingTail(ValueOf.java:198) at net.sf.saxon.expr.LetExpression.processLeavingTail(LetExpression.java:405) at net.sf.saxon.instruct.Choose.processLeavingTail(Choose.java:347) at net.sf.saxon.instruct.Block.processLeavingTail(Block.java:365) at net.sf.saxon.instruct.Template.expand(Template.java:112) at net.sf.saxon.instruct.CallTemplate.process(CallTemplate.java:212) at net.sf.saxon.instruct.DocumentInstr.evaluateItem(DocumentInstr.java:243) at net.sf.saxon.instruct.Instruction.iterate(Instruction.java:320) at net.sf.saxon.expr.SingletonAtomizer.evaluateItem(SingletonAtomizer.java:103) at net.sf.saxon.functions.Concat.evaluateItem(Concat.java:38) at net.sf.saxon.instruct.SimpleContentConstructor.evaluateItem(SimpleContentConstructor.java:216) at net.sf.saxon.instruct.ValueOf.processLeavingTail(ValueOf.java:198) at net.sf.saxon.expr.LetExpression.processLeavingTail(LetExpression.java:405) at net.sf.saxon.instruct.Choose.processLeavingTail(Choose.java:347) at net.sf.saxon.instruct.Block.processLeavingTail(Block.java:365) at net.sf.saxon.instruct.Template.expand(Template.java:112) at net.sf.saxon.instruct.CallTemplate.process(CallTemplate.java:212) at net.sf.saxon.instruct.DocumentInstr.evaluateItem(DocumentInstr.java:243) at net.sf.saxon.instruct.Instruction.iterate(Instruction.java:320) at net.sf.saxon.expr.SingletonAtomizer.evaluateItem(SingletonAtomizer.java:103) at net.sf.saxon.functions.Concat.evaluateItem(Concat.java:38) at net.sf.saxon.instruct.SimpleContentConstructor.evaluateItem(SimpleContentConstructor.java:216) at net.sf.saxon.instruct.ValueOf.processLeavingTail(ValueOf.java:198) at net.sf.saxon.expr.LetExpression.processLeavingTail(LetExpression.java:405) at net.sf.saxon.instruct.Choose.processLeavingTail(Choose.java:347) at net.sf.saxon.instruct.Block.processLeavingTail(Block.java:365) at net.sf.saxon.instruct.Template.expand(Template.java:112) at net.sf.saxon.instruct.CallTemplate.process(CallTemplate.java:212) at net.sf.saxon.instruct.DocumentInstr.evaluateItem(DocumentInstr.java:243) at net.sf.saxon.expr.ExpressionTool.evaluate(ExpressionTool.java:361) at net.sf.saxon.expr.LetExpression.eval(LetExpression.java:229) at net.sf.saxon.expr.LetExpression.processLeavingTail(LetExpression.java:396) at net.sf.saxon.instruct.Template.applyLeavingTail(Template.java:98) at net.sf.saxon.instruct.ApplyTemplates.applyTemplates(ApplyTemplates.java:317) at net.sf.saxon.Controller.transformDocument(Controller.java:1705) at net.sf.saxon.Controller.transform(Controller.java:1513)
Replies (9)
Please register to reply
RE: Saxon Choose class exception on WAS 6.1 - Added by Anonymous over 17 years ago
Legacy ID: #4423582 Legacy Poster: Michael Kay (mhkay)
This certainly does look strange. The line numbers for net.sf.saxon.instruct.Choose suggest that the latest patches (8.9.0.4) aren't in. I don't think the patch to this module is directly relevant, however. Looking at the line numbers of the original 8.9. code, we have 345 if (b) { 346 if (actions[i] instanceof TailCallReturner) { 347 return ((TailCallReturner)actions[i]).processLeavingTail(context); 348 } else { 349 actions[i].process(context); 350 return null; 351 } } So there's no way line 349 can fail with an ABC failure because it would have happened at line 346. I may be making a big mistake, but I'm suspecting some kind of corruption or mispatching of your Saxon jar file, or worse still, a JVM bug. Is there any history that might account for this? I'd suggest as a first step taking a clean 8.9.0.4 download and seeing if the problem goes away. I'm influenced by the fact that the code in this particular area is very simple and solid, there is no history of problems and no obvious "fragility" in the design. If 8.9.0.4 doesn't fix it then we're going to have to find some way of reproducing it "in the lab", which doesn't sound easy. Michael Kay http://www.saxonica.com/
RE: Saxon Choose class exception on WAS 6.1 - Added by Anonymous over 17 years ago
Legacy ID: #4432910 Legacy Poster: pafawa (pafawa)
Hi I did like you said (took a clean build, had to change dir name form META_INF/service to META_INF/services in the meantime, to make jaxp work properly ) and it hasn’t helped a bit. The same exception occurs. I will try to run it on jboss (now using was 6.1) to check if it is a jvm bug by any chance. BR Paul
RE: Saxon Choose class exception on WAS 6.1 - Added by Anonymous over 17 years ago
Legacy ID: #4432922 Legacy Poster: Michael Kay (mhkay)
If you had to change META_INF/service that implies you installed 8.9 rather than 8.9.0.4. There are quite a few fixed bugs in 8.9.0.4. If you can still reproduce it, let me have the stack trace - there is just a chance it will be sufficient to spot the problem. Chance are, however, I won't be able to fix it unless I can reproduce it.
RE: Saxon Choose class exception on WAS 6.1 - Added by Anonymous over 17 years ago
Legacy ID: #4433094 Legacy Poster: pafawa (pafawa)
Hi Same peace of code different line this time :) : java.lang.ArrayIndexOutOfBoundsException java.lang.ArrayIndexOutOfBoundsException at net.sf.saxon.instruct.Choose.processLeavingTail(Choose.java:356) at net.sf.saxon.instruct.Block.processLeavingTail(Block.java:365) at net.sf.saxon.instruct.Template.expand(Template.java:112) at net.sf.saxon.instruct.CallTemplate.process(CallTemplate.java:212) at net.sf.saxon.instruct.DocumentInstr.evaluateItem(DocumentInstr.java:243) at net.sf.saxon.instruct.Instruction.iterate(Instruction.java:320) at net.sf.saxon.expr.SingletonAtomizer.evaluateItem(SingletonAtomizer.java:103) at net.sf.saxon.functions.Concat.evaluateItem(Concat.java:38) at net.sf.saxon.instruct.SimpleContentConstructor.evaluateItem(SimpleContentConstructor.java:216) at net.sf.saxon.instruct.ValueOf.processLeavingTail(ValueOf.java:198) at net.sf.saxon.expr.LetExpression.processLeavingTail(LetExpression.java:405) at net.sf.saxon.instruct.Choose.processLeavingTail(Choose.java:354) at net.sf.saxon.instruct.Block.processLeavingTail(Block.java:365) at net.sf.saxon.instruct.Template.expand(Template.java:112) at net.sf.saxon.instruct.CallTemplate.process(CallTemplate.java:212) at net.sf.saxon.instruct.DocumentInstr.evaluateItem(DocumentInstr.java:243) at net.sf.saxon.instruct.Instruction.iterate(Instruction.java:320) at net.sf.saxon.expr.SingletonAtomizer.evaluateItem(SingletonAtomizer.java:103) at net.sf.saxon.functions.Concat.evaluateItem(Concat.java:38) at net.sf.saxon.instruct.SimpleContentConstructor.evaluateItem(SimpleContentConstructor.java:216) at net.sf.saxon.instruct.ValueOf.processLeavingTail(ValueOf.java:198) at net.sf.saxon.expr.LetExpression.processLeavingTail(LetExpression.java:405) at net.sf.saxon.instruct.Choose.processLeavingTail(Choose.java:354) at net.sf.saxon.instruct.Block.processLeavingTail(Block.java:365) at net.sf.saxon.instruct.Template.expand(Template.java:112) at net.sf.saxon.instruct.CallTemplate.process(CallTemplate.java:212) at net.sf.saxon.instruct.DocumentInstr.evaluateItem(DocumentInstr.java:243) at net.sf.saxon.instruct.Instruction.iterate(Instruction.java:320) at net.sf.saxon.expr.SingletonAtomizer.evaluateItem(SingletonAtomizer.java:103) at net.sf.saxon.functions.Concat.evaluateItem(Concat.java:38) at net.sf.saxon.instruct.SimpleContentConstructor.evaluateItem(SimpleContentConstructor.java:216) at net.sf.saxon.instruct.ValueOf.processLeavingTail(ValueOf.java:198) at net.sf.saxon.expr.LetExpression.processLeavingTail(LetExpression.java:405) at net.sf.saxon.instruct.Choose.processLeavingTail(Choose.java:354) at net.sf.saxon.instruct.Block.processLeavingTail(Block.java:365) at net.sf.saxon.instruct.Template.expand(Template.java:112) at net.sf.saxon.instruct.CallTemplate.process(CallTemplate.java:212) at net.sf.saxon.instruct.DocumentInstr.evaluateItem(DocumentInstr.java:243) at net.sf.saxon.instruct.Instruction.iterate(Instruction.java:320) at net.sf.saxon.expr.SingletonAtomizer.evaluateItem(SingletonAtomizer.java:103) at net.sf.saxon.functions.Concat.evaluateItem(Concat.java:38) at net.sf.saxon.instruct.SimpleContentConstructor.evaluateItem(SimpleContentConstructor.java:216) at net.sf.saxon.instruct.ValueOf.processLeavingTail(ValueOf.java:198) at net.sf.saxon.expr.LetExpression.processLeavingTail(LetExpression.java:405) at net.sf.saxon.instruct.Choose.processLeavingTail(Choose.java:354) at net.sf.saxon.instruct.Block.processLeavingTail(Block.java:365) at net.sf.saxon.instruct.Template.expand(Template.java:112) at net.sf.saxon.instruct.CallTemplate.process(CallTemplate.java:212) at net.sf.saxon.instruct.DocumentInstr.evaluateItem(DocumentInstr.java:243) at net.sf.saxon.instruct.Instruction.iterate(Instruction.java:320) at net.sf.saxon.expr.SingletonAtomizer.evaluateItem(SingletonAtomizer.java:103) at net.sf.saxon.functions.Concat.evaluateItem(Concat.java:38) at net.sf.saxon.instruct.SimpleContentConstructor.evaluateItem(SimpleContentConstructor.java:216) at net.sf.saxon.instruct.ValueOf.processLeavingTail(ValueOf.java:198) at net.sf.saxon.expr.LetExpression.processLeavingTail(LetExpression.java:405) at net.sf.saxon.instruct.Choose.processLeavingTail(Choose.java:354) at net.sf.saxon.instruct.Block.processLeavingTail(Block.java:365) at net.sf.saxon.instruct.Template.expand(Template.java:112) at net.sf.saxon.instruct.CallTemplate.process(CallTemplate.java:212) at net.sf.saxon.instruct.DocumentInstr.evaluateItem(DocumentInstr.java:243) at net.sf.saxon.instruct.Instruction.iterate(Instruction.java:320) at net.sf.saxon.expr.SingletonAtomizer.evaluateItem(SingletonAtomizer.java:103) at net.sf.saxon.functions.Concat.evaluateItem(Concat.java:38) at net.sf.saxon.instruct.SimpleContentConstructor.evaluateItem(SimpleContentConstructor.java:216) at net.sf.saxon.instruct.ValueOf.processLeavingTail(ValueOf.java:198) at net.sf.saxon.expr.LetExpression.processLeavingTail(LetExpression.java:405) at net.sf.saxon.instruct.Choose.processLeavingTail(Choose.java:354) at net.sf.saxon.instruct.Block.processLeavingTail(Block.java:365) at net.sf.saxon.instruct.Template.expand(Template.java:112) at net.sf.saxon.instruct.CallTemplate.process(CallTemplate.java:212) at net.sf.saxon.instruct.DocumentInstr.evaluateItem(DocumentInstr.java:243) at net.sf.saxon.instruct.Instruction.iterate(Instruction.java:320) at net.sf.saxon.expr.SingletonAtomizer.evaluateItem(SingletonAtomizer.java:103) at net.sf.saxon.functions.Concat.evaluateItem(Concat.java:38) at net.sf.saxon.instruct.SimpleContentConstructor.evaluateItem(SimpleContentConstructor.java:216) at net.sf.saxon.instruct.ValueOf.processLeavingTail(ValueOf.java:198) at net.sf.saxon.expr.LetExpression.processLeavingTail(LetExpression.java:405) at net.sf.saxon.instruct.Choose.processLeavingTail(Choose.java:354) at net.sf.saxon.instruct.Block.processLeavingTail(Block.java:365) at net.sf.saxon.instruct.Template.expand(Template.java:112) at net.sf.saxon.instruct.CallTemplate.process(CallTemplate.java:212) at net.sf.saxon.instruct.DocumentInstr.evaluateItem(DocumentInstr.java:243) at net.sf.saxon.instruct.Instruction.iterate(Instruction.java:320) at net.sf.saxon.expr.SingletonAtomizer.evaluateItem(SingletonAtomizer.java:103) at net.sf.saxon.functions.Concat.evaluateItem(Concat.java:38) at net.sf.saxon.instruct.SimpleContentConstructor.evaluateItem(SimpleContentConstructor.java:216) at net.sf.saxon.instruct.ValueOf.processLeavingTail(ValueOf.java:198) at net.sf.saxon.expr.LetExpression.processLeavingTail(LetExpression.java:405) at net.sf.saxon.instruct.Choose.processLeavingTail(Choose.java:354) at net.sf.saxon.instruct.Block.processLeavingTail(Block.java:365) at net.sf.saxon.instruct.Template.expand(Template.java:112) at net.sf.saxon.instruct.CallTemplate.process(CallTemplate.java:212) at net.sf.saxon.instruct.DocumentInstr.evaluateItem(DocumentInstr.java:243) at net.sf.saxon.instruct.Instruction.iterate(Instruction.java:320) at net.sf.saxon.expr.SingletonAtomizer.evaluateItem(SingletonAtomizer.java:103) at net.sf.saxon.functions.Concat.evaluateItem(Concat.java:38) at net.sf.saxon.instruct.SimpleContentConstructor.evaluateItem(SimpleContentConstructor.java:216) at net.sf.saxon.instruct.ValueOf.processLeavingTail(ValueOf.java:198) at net.sf.saxon.expr.LetExpression.processLeavingTail(LetExpression.java:405) at net.sf.saxon.instruct.Choose.processLeavingTail(Choose.java:354) at net.sf.saxon.instruct.Block.processLeavingTail(Block.java:365) at net.sf.saxon.instruct.Template.expand(Template.java:112) at net.sf.saxon.instruct.CallTemplate.process(CallTemplate.java:212) at net.sf.saxon.instruct.DocumentInstr.evaluateItem(DocumentInstr.java:243) at net.sf.saxon.instruct.Instruction.iterate(Instruction.java:320) at net.sf.saxon.expr.SingletonAtomizer.evaluateItem(SingletonAtomizer.java:103) at net.sf.saxon.functions.Concat.evaluateItem(Concat.java:38) at net.sf.saxon.instruct.SimpleContentConstructor.evaluateItem(SimpleContentConstructor.java:216) at net.sf.saxon.instruct.ValueOf.processLeavingTail(ValueOf.java:198) at net.sf.saxon.expr.LetExpression.processLeavingTail(LetExpression.java:405) at net.sf.saxon.instruct.Choose.processLeavingTail(Choose.java:354) at net.sf.saxon.instruct.Block.processLeavingTail(Block.java:365) at net.sf.saxon.instruct.Template.expand(Template.java:112) at net.sf.saxon.instruct.CallTemplate.process(CallTemplate.java:212) at net.sf.saxon.instruct.DocumentInstr.evaluateItem(DocumentInstr.java:243) at net.sf.saxon.instruct.Instruction.iterate(Instruction.java:320) at net.sf.saxon.expr.SingletonAtomizer.evaluateItem(SingletonAtomizer.java:103) at net.sf.saxon.functions.Concat.evaluateItem(Concat.java:38) at net.sf.saxon.instruct.SimpleContentConstructor.evaluateItem(SimpleContentConstructor.java:216) at net.sf.saxon.instruct.ValueOf.processLeavingTail(ValueOf.java:198) at net.sf.saxon.expr.LetExpression.processLeavingTail(LetExpression.java:405) at net.sf.saxon.instruct.Choose.processLeavingTail(Choose.java:354) at net.sf.saxon.instruct.Block.processLeavingTail(Block.java:365) at net.sf.saxon.instruct.Template.expand(Template.java:112) at net.sf.saxon.instruct.CallTemplate.process(CallTemplate.java:212) at net.sf.saxon.instruct.DocumentInstr.evaluateItem(DocumentInstr.java:243) at net.sf.saxon.instruct.Instruction.iterate(Instruction.java:320) at net.sf.saxon.expr.SingletonAtomizer.evaluateItem(SingletonAtomizer.java:103) at net.sf.saxon.functions.Concat.evaluateItem(Concat.java:38) at net.sf.saxon.instruct.SimpleContentConstructor.evaluateItem(SimpleContentConstructor.java:216) at net.sf.saxon.instruct.ValueOf.processLeavingTail(ValueOf.java:198) at net.sf.saxon.expr.LetExpression.processLeavingTail(LetExpression.java:405) at net.sf.saxon.instruct.Choose.processLeavingTail(Choose.java:354) at net.sf.saxon.instruct.Block.processLeavingTail(Block.java:365) at net.sf.saxon.instruct.Template.expand(Template.java:112) at net.sf.saxon.instruct.CallTemplate.process(CallTemplate.java:212) at net.sf.saxon.instruct.DocumentInstr.evaluateItem(DocumentInstr.java:243) at net.sf.saxon.instruct.Instruction.iterate(Instruction.java:320) at net.sf.saxon.expr.SingletonAtomizer.evaluateItem(SingletonAtomizer.java:103) at net.sf.saxon.functions.Concat.evaluateItem(Concat.java:38) at net.sf.saxon.instruct.SimpleContentConstructor.evaluateItem(SimpleContentConstructor.java:216) at net.sf.saxon.instruct.ValueOf.processLeavingTail(ValueOf.java:198) at net.sf.saxon.expr.LetExpression.processLeavingTail(LetExpression.java:405) at net.sf.saxon.instruct.Choose.processLeavingTail(Choose.java:354) at net.sf.saxon.instruct.Block.processLeavingTail(Block.java:365) at net.sf.saxon.instruct.Template.expand(Template.java:112) at net.sf.saxon.instruct.CallTemplate.process(CallTemplate.java:212) at net.sf.saxon.instruct.DocumentInstr.evaluateItem(DocumentInstr.java:243) at net.sf.saxon.instruct.Instruction.iterate(Instruction.java:320) at net.sf.saxon.expr.SingletonAtomizer.evaluateItem(SingletonAtomizer.java:103) at net.sf.saxon.functions.Concat.evaluateItem(Concat.java:38) at net.sf.saxon.instruct.SimpleContentConstructor.evaluateItem(SimpleContentConstructor.java:216) at net.sf.saxon.instruct.ValueOf.processLeavingTail(ValueOf.java:198) at net.sf.saxon.expr.LetExpression.processLeavingTail(LetExpression.java:405) at net.sf.saxon.instruct.Choose.processLeavingTail(Choose.java:354) at net.sf.saxon.instruct.Block.processLeavingTail(Block.java:365) at net.sf.saxon.instruct.Template.expand(Template.java:112) at net.sf.saxon.instruct.CallTemplate.process(CallTemplate.java:212) at net.sf.saxon.instruct.DocumentInstr.evaluateItem(DocumentInstr.java:243) at net.sf.saxon.instruct.Instruction.iterate(Instruction.java:320) at net.sf.saxon.expr.SingletonAtomizer.evaluateItem(SingletonAtomizer.java:103) at net.sf.saxon.functions.Concat.evaluateItem(Concat.java:38) at net.sf.saxon.instruct.SimpleContentConstructor.evaluateItem(SimpleContentConstructor.java:216) at net.sf.saxon.instruct.ValueOf.processLeavingTail(ValueOf.java:198) at net.sf.saxon.expr.LetExpression.processLeavingTail(LetExpression.java:405) at net.sf.saxon.instruct.Choose.processLeavingTail(Choose.java:354) at net.sf.saxon.instruct.Block.processLeavingTail(Block.java:365) at net.sf.saxon.instruct.Template.expand(Template.java:112) at net.sf.saxon.instruct.CallTemplate.process(CallTemplate.java:212) at net.sf.saxon.instruct.DocumentInstr.evaluateItem(DocumentInstr.java:243) at net.sf.saxon.instruct.Instruction.iterate(Instruction.java:320) at net.sf.saxon.expr.SingletonAtomizer.evaluateItem(SingletonAtomizer.java:103) at net.sf.saxon.functions.Concat.evaluateItem(Concat.java:38) at net.sf.saxon.instruct.SimpleContentConstructor.evaluateItem(SimpleContentConstructor.java:216) at net.sf.saxon.instruct.ValueOf.processLeavingTail(ValueOf.java:198) at net.sf.saxon.expr.LetExpression.processLeavingTail(LetExpression.java:405) at net.sf.saxon.instruct.Choose.processLeavingTail(Choose.java:354) at net.sf.saxon.instruct.Block.processLeavingTail(Block.java:365) at net.sf.saxon.instruct.Template.expand(Template.java:112) at net.sf.saxon.instruct.CallTemplate.process(CallTemplate.java:212) at net.sf.saxon.instruct.DocumentInstr.evaluateItem(DocumentInstr.java:243) at net.sf.saxon.instruct.Instruction.iterate(Instruction.java:320) at net.sf.saxon.expr.SingletonAtomizer.evaluateItem(SingletonAtomizer.java:103) at net.sf.saxon.functions.Concat.evaluateItem(Concat.java:38) at net.sf.saxon.instruct.SimpleContentConstructor.evaluateItem(SimpleContentConstructor.java:216) at net.sf.saxon.instruct.ValueOf.processLeavingTail(ValueOf.java:198) at net.sf.saxon.expr.LetExpression.processLeavingTail(LetExpression.java:405) at net.sf.saxon.instruct.Choose.processLeavingTail(Choose.java:354) at net.sf.saxon.instruct.Block.processLeavingTail(Block.java:365) at net.sf.saxon.instruct.Template.expand(Template.java:112) at net.sf.saxon.instruct.CallTemplate.process(CallTemplate.java:212) at net.sf.saxon.instruct.DocumentInstr.evaluateItem(DocumentInstr.java:243) at net.sf.saxon.expr.ExpressionTool.evaluate(ExpressionTool.java:361) at net.sf.saxon.expr.LetExpression.eval(LetExpression.java:229) at net.sf.saxon.expr.LetExpression.processLeavingTail(LetExpression.java:396) at net.sf.saxon.instruct.Template.applyLeavingTail(Template.java:98) at net.sf.saxon.instruct.ApplyTemplates.applyTemplates(ApplyTemplates.java:317) at net.sf.saxon.Controller.transformDocument(Controller.java:1706) at net.sf.saxon.Controller.transform(Controller.java:1513)
RE: Saxon Choose class exception on WAS 6.1 - Added by Anonymous over 17 years ago
Legacy ID: #4433317 Legacy Poster: Michael Kay (mhkay)
OK, thanks. It's actually the same code where it crashed before, and it just doesn't make sense. If you can't produce a repro that I can run here, the only thing we can do is to patch the code to insert diagnostics. Are you able to modify the code and rebuild the JAR? A good start would be to wrap: if (b) { if (actions[i] instanceof TailCallReturner) { return ((TailCallReturner)actions[i]).processLeavingTail(context); } else { actions[i].process(context); return null; } } in a try/catch with: catch (Exception err) { System.err.println("failed on action " + i + " at line " + getLineNumber()); System.err.println("conditions " + conditions.length); for (int i=0; i<conditions.length; i++) { System.err.println(conditions[i].getClass().getName()); } System.err.println("actions" + actions.length); for (int i=0; i<actions.length; i++) { System.err.println(actions[i].getClass().getName()); } }
RE: Saxon Choose class exception on WAS 6.1 - Added by Anonymous over 17 years ago
Legacy ID: #4434617 Legacy Poster: pafawa (pafawa)
Hi The whole thing looks very weird, because as you have cleverly notice if the index had exceeded the array, the line 346 would have thrown an exception before line 349. 345 if (b) { 346 if (actions[i] instanceof TailCallReturner) { 347 return ((TailCallReturner)actions[i]).processLeavingTail(context); 348 } else { 349 actions[i].process(context); 350 return null; 351 } } Minding that the second reference to the actions array element throws an exception, we have refactored the code to have only one reference: 345 if (b) { 346 Expression tmp = actions[i]; 347 if (tmp instanceof TailCallReturner) { 348 return ((TailCallReturner)tmp).processLeavingTail(context); 348 } else { 349 tmp.process(context); 350 return null; 351 } 352 } and it looks like it did the trick - strangely. The whole thing looks like a jvm bug to me, as i was suspecting from the beginning :). BR P.F.
RE: Saxon Choose class exception on WAS 6.1 - Added by Anonymous over 17 years ago
Legacy ID: #4435110 Legacy Poster: pafawa (pafawa)
Here are the debugging msgs that u have aked for: failed on action 0 at line 846 conditions 2 net.sf.saxon.functions.StringFn net.sf.saxon.expr.Literal actions 2 net.sf.saxon.expr.LetExpression net.sf.saxon.expr.Literal I think that proofs that we are dealing with a jvm bug.
RE: Saxon Choose class exception on WAS 6.1 - Added by Anonymous over 17 years ago
Legacy ID: #4435523 Legacy Poster: Michael Kay (mhkay)
Thanks for the extra info. Yes, it looks like a Java bug. What JVM is it again? Michael Kay
RE: Saxon Choose class exception on WAS 6.1 - Added by Anonymous over 17 years ago
Legacy ID: #4439902 Legacy Poster: pafawa (pafawa)
Hi That's the all info that i can get about this jvm: Java(TM) 2 Runtime Environment, Standard Edition (build pmz31devifx-20070323 (ifix 117671: SR4 + 116644 + 114941 + 116110 + 114881)) IBM J9 VM (build 2.3, J2RE 1.5.0 IBM J9 2.3 z/OS s390-31 j9vmmz3123ifx-20070323 (JIT enabled) J9VM - 20070322_12058_bHdSMr JIT - 20070109_1805ifx3_r8 GC - WASIFIX_2007) JCL - 20070126
Please register to reply