Hello,

I am trying to do some marshalling using jibx, everything is working
perfectly as expected, but only when closing the end parent tag, I am facing
an issue.
PFB the code below.
                                                                                
               
fos = new FileOutputStream(file, true);
                                                                                
               
// IXMLWriter wrapperWriter = null;
                                                                                
               
IXMLWriter wrapperWriter = null;
                                                                                
               
IXMLWriter writer=null;
                                                                                
               
IBindingFactory bFactTransaction=null;
                                                                                
               
IMarshallingContext mCtxTransaction=null;
                                                                                
                
{
                                                                                
                                
                                                                                
                                               
bFactTransaction = BindingDirectory
                                                                                
                                                                               
.getFactory(object.getTransactions()
                                                                                
                                                                                
                               
.getTransactions().get(0)
                                                                                
                                                                                
                               
.getClass());
                                                                                
                                               
mCtxTransaction = bFactTransaction
                                                                                
                                                                               
.createMarshallingContext();
                                                                                
                                               
mCtxTransaction.setIndent(4);
                                                                                
                                               
mCtxTransaction.setOutput(fos, "UTF-8");
                                                                                
                                               
writer = mCtxTransaction.getXmlWriter();                                        
                                                                                
    
                                                                                
                                                
                                                                                
                                               
if (objectCount == 0) {
                                                                                
                                                               
mCtxTransaction.startDocument("UTF-8", null);
                                                                                
                                                               
writer.startTagClosed(0, "parent-tag");
                                                                                
                                                               
wrapperWriter = writer;
                                                                                
                                               
}
                                                                                
                                               
writer.startTagClosed(0, "child");
                                                                                
                                               
writer.startTagClosed(0, "Header");
                                                                                
                                               
writer.endTag(0, "Header");
                                                                                
                                               
writer.startTagClosed(0, "items");
                                                                                
                                                               
//wrapperWriter = writer;
                                                                                
                                               
}

                                                                                
                                               
// marshall object
                                                                                
                                               
((IMarshallable) object.getTransactions()
                                                                                
                                                                               
.getTransactions().get(0))
                                                                                
                                                                               
.marshal(mCtxTransaction);
                                                                                
                                               
writer.flush();
                                                                                
                                                
                                                                                
                                                               
if (somecondition) {
                                                                                
                                                                               
System.out.println("writer==========="+writer+"depth"+writer.getNestingDepth());
                                                                                
                                                                               
wrapperWriter.endTag(0, "items");
                                                                                
                                                                                

                                                                                
                                                               
}

                                                                                
                
                                                                                
                               
if (objectCount == (numberOfObjectsToFetch-1)) {
                                                                                
                                               
System.out.println("ENTERED closing parent-tag");
                                                                                
                                               
wrapperWriter.endTag(0, "parent-tag ");
                                                                                
                                               
wrapperWriter.flush();
                                                                                
                               
}

Exception is taking place in the red bold line:

java.lang.ArrayIndexOutOfBoundsException
        at java.lang.System.arraycopy(Native Method)
        at
org.jibx.runtime.impl.StreamWriterBase.indent(StreamWriterBase.java:3
88)
        at
org.jibx.runtime.impl.XMLWriterBase.endTag(XMLWriterBase.java:332)
        at
com.testing.app.report.handler.xml.helper.XMLUtilHelper.generateXML(XM
LUtilHelper.java:153)
        at
com.testing.app.job.report.xml.APPTellerJob.generateXML(APPTellerJob.j
ava:213)
        at
com.testing.app.job.report.xml.APPTellerJob.execute(APPTellerJob.java:
108)
        at com.testing.app.job.SynchronousJob.run(SynchronousJob.java:52)
        at
com.testing.app.job.manager.ejb.JobManagerBean.doExecute(JobManagerBea
n.java:698)
        at
com.testing.app.job.manager.ejb.JobManagerBean.executeJob(JobManagerBe
an.java:667)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at
org.apache.openejb.core.interceptor.ReflectionInvocationContext$Invoc
ation.invoke(ReflectionInvocationContext.java:158)
        at
org.apache.openejb.core.interceptor.ReflectionInvocationContext.proce
ed(ReflectionInvocationContext.java:141)
        at
org.apache.openejb.core.interceptor.InterceptorStack.invoke(Intercept
orStack.java:67)
        at
org.apache.openejb.core.stateless.StatelessContainer._invoke(Stateles
sContainer.java:210)
        at
org.apache.openejb.core.stateless.StatelessContainer._invoke(Stateles
sContainer.java:188)
        at
org.apache.openejb.core.stateless.StatelessContainer.invoke(Stateless
Container.java:165)
        at
org.apache.openejb.core.ivm.EjbObjectProxyHandler.businessMethod(EjbO
bjectProxyHandler.java:217)
        at
org.apache.openejb.core.ivm.EjbObjectProxyHandler._invoke(EjbObjectPr
oxyHandler.java:77)
        at
org.apache.openejb.core.ivm.BaseEjbProxyHandler.invoke(BaseEjbProxyHa
ndler.java:321)
        at
org.apache.openejb.util.proxy.Jdk13InvocationHandler.invoke(Jdk13Invo
cationHandler.java:49)
        at $Proxy52.executeJob(Unknown Source)
        at
com.testing.app.timer.ejb.APPTimerBean.onJobTimer(APPTimerBean.java:39
5)
        at
com.testing.app.timer.ejb.APPTimerBean.ejbTimeout(APPTimerBean.java:28
6)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at
org.apache.openejb.core.interceptor.ReflectionInvocationContext$Invoc
ation.invoke(ReflectionInvocationContext.java:158)
        at
org.apache.openejb.core.interceptor.ReflectionInvocationContext.proce
ed(ReflectionInvocationContext.java:141)
        at
org.apache.openejb.core.interceptor.InterceptorStack.invoke(Intercept
orStack.java:67)
        at
org.apache.openejb.core.stateless.StatelessContainer._invoke(Stateles
sContainer.java:210)
        at
org.apache.openejb.core.stateless.StatelessContainer._invoke(Stateles
sContainer.java:188)
        at
org.apache.openejb.core.stateless.StatelessContainer.invoke(Stateless
Container.java:165)
        at
org.apache.openejb.core.timer.EjbTimerServiceImpl.ejbTimeout(EjbTimer
ServiceImpl.java:284)
        at
org.apache.openejb.core.timer.EjbTimerServiceImpl.access$100(EjbTimer
ServiceImpl.java:43)
        at
org.apache.openejb.core.timer.EjbTimerServiceImpl$EjbTimeoutTimerTask
$1.run(EjbTimerServiceImpl.java:350)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown
Source
)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown
Source)
        at java.lang.Thread.run(Unknown Source)

Any help would be appreciated.


Anshuk 

-- 
View this message in context: 
http://www.nabble.com/XMLWriterBase%3A-ArrayIndexOutOfBoundsException-tp24456767p24456767.html
Sent from the jibx-users mailing list archive at Nabble.com.


------------------------------------------------------------------------------
Enter the BlackBerry Developer Challenge  
This is your chance to win up to $100,000 in prizes! For a limited time, 
vendors submitting new applications to BlackBerry App World(TM) will have
the opportunity to enter the BlackBerry Developer Challenge. See full prize  
details at: http://p.sf.net/sfu/Challenge
_______________________________________________
jibx-users mailing list
jibx-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jibx-users

Reply via email to