2015-09-25 8 views
6

का उपयोग करते समय ArrayIndexOutOfBoundsException मुझे यकीन नहीं है कि यह कैसे संभव है, लेकिन मैं जो प्रोग्राम चला रहा हूं वह मुझे एक अजीब त्रुटि दे रहा है। मुझे प्रत्येक लूप के लिए एक ArrayIndexOutOfBoundsException: -1 पर मिल रहा है। पूरे त्रुटि के नीचे है:XStream

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: -1 
at com.thoughtworks.xstream.core.util.OrderRetainingMap.entrySet(OrderRetainingMap.java:77) 
at java.util.HashMap.putMapEntries(HashMap.java:511) 
at java.util.HashMap.putAll(HashMap.java:784) 
at com.thoughtworks.xstream.core.util.OrderRetainingMap.<init>(OrderRetainingMap.java:36) 
at com.thoughtworks.xstream.converters.reflection.FieldDictionary.buildMap(FieldDictionary.java:135) 
at com.thoughtworks.xstream.converters.reflection.FieldDictionary.fieldsFor(FieldDictionary.java:76) 
at com.thoughtworks.xstream.converters.reflection.PureJavaReflectionProvider.visitSerializableFields(PureJavaReflectionProvider.java:126) 
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doMarshal(AbstractReflectionConverter.java:81) 
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.marshal(AbstractReflectionConverter.java:72) 
at com.thoughtworks.xstream.core.AbstractReferenceMarshaller.convert(AbstractReferenceMarshaller.java:69) 
at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:58) 
at com.thoughtworks.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:43) 
at com.thoughtworks.xstream.core.TreeMarshaller.start(TreeMarshaller.java:82) 
at com.thoughtworks.xstream.core.AbstractTreeMarshallingStrategy.marshal(AbstractTreeMarshallingStrategy.java:37) 
at com.thoughtworks.xstream.XStream.marshal(XStream.java:895) 
at com.thoughtworks.xstream.XStream.marshal(XStream.java:884) 
at com.thoughtworks.xstream.XStream.toXML(XStream.java:857) 
at com.thoughtworks.xstream.XStream.toXML(XStream.java:844) 
at unl.cse.assignments.DataConverter.output(DataConverter.java:210) 
at unl.cse.assignments.DataConverter.main(DataConverter.java:121) 

लाइन 210 pw.print लाइन है:

for(Product p : products) 
    { 
     if(AwardTicket.class.isInstance(p)){ 
      xstream.alias("awardTicket", AwardTicket.class); 
      pw.print(xstream.toXML(p) + "\n"); 
     } 
} 

(लाइन 121 सिर्फ उत्पादन पर कॉल)

मैं के लिए इस त्रुटि की जांच कर रहा है एक लंबा समय और मैं इसका कारण नहीं समझ सकता। मैंने माना कि एक्सस्ट्रीम के साथ कुछ गड़बड़ है, लेकिन मैंने इसे अन्य आउटपुट के साथ करने की कोशिश की।

+0

मैं _p_ ऑब्जेक्ट सामग्री की जांच करूंगा -> उनमें से किसी पर कुछ गलत होना चाहिए। या शायद _xstream_ में कोई समस्या है – JavierFromMadrid

+0

पी (उत्पादों) की सामग्री वास्तव में उत्पाद के उप-वर्ग हैं। क्या यह एक संभावित मुद्दा हो सकता है? – Tanner

+4

एक बग हो सकता है जो 1.4.6 में तय किया गया था: http://x-stream.github.io/jira/746/ – Andreas

उत्तर

8

जैसा कि एंड्रियास ने बताया, यह वास्तव में bug in XStream है जो संस्करण 1.4.6 में तय किया गया था। एक्सस्ट्रीम का नवीनतम संस्करण here डाउनलोड किया जा सकता है।

संबंधित मुद्दे