Wednesday, August 5, 2009

OWB 10.2.0.4 joiner errors

Deleting a in-group in a joiner
If you have a joiner and for some reason has to delete one of the in groups OWB can corrupt the join conditions. After a delete the columns in the conditions have moved around or been substituted for other (apparently random) columns. If not corrected manually afterwards this will cause you trouble.

java.lang.ArrayIndexOutOfBoundsException: -1
When deploying a mapping you might get the following error
VLD-1141: Internal error during mapping generation.

java.lang.ArrayIndexOutOfBoundsException: -1
at oracle.wh.service.impl.mapping.component.JoinSqlDelegate.prepareOutputContext(JoinSqlDelegate.java:530)
at oracle.wh.service.impl.mapping.generation.WBMappingGenerator.generate(WBMappingGenerator.java:239)
at oracle.wh.service.impl.mapping.generation.PlSqlGenerationMediator.assembleSetBasedInternal(PlSqlGenerationMediator.java:2150)
at oracle.wh.service.impl.mapping.generation.PlSqlGenerationMediator.assembleSetBased(PlSqlGenerationMediator.java:2132)
at oracle.wh.service.impl.mapping.generation.PlSqlGenerationMediator.assemble(PlSqlGenerationMediator.java:554)
at oracle.wh.service.impl.mapping.generation.WBMappingGenerator.generate(WBMappingGenerator.java:807)
at oracle.wh.service.impl.mapping.generation.WBMappingGenerator.generate(WBMappingGenerator.java:334)
at oracle.wh.service.impl.mapping.generation.WBDeployableMappingGenerator.generate(WBDeployableMappingGenerator.java:104)
at oracle.wh.service.impl.generation.common.WBGenerationService.generateCode(WBGenerationService.java:433)
at oracle.wh.service.impl.generation.common.WBGenerationService.generateCode(WBGenerationService.java:311)
at oracle.wh.service.impl.generation.service.WhValidationGenerationTransaction.run(WhValidationGenerationTransaction.java:251)
This happens if you have a join condition referencing outgrp1. Why would you reference outgrp1 in a join statement, you wouldn't. However if your deleting one of the in-group, in particular the last in-group, Oracle might insert outgrp1 as part of the join condition. If you get this error start by looking through all your join conditions to see if Oracle have messed one up.