Announcement

Collapse
No announcement yet.

java.lang.Exception: Encoder: discarding statement

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • java.lang.Exception: Encoder: discarding statement

    Hallo,

    ich habe ine Frage zu einer Exception, die ich noch nicht so richtig verstehe:

    java.lang.Exception: Encoder: discarding statement MeineKlasse.setName(null)

    Durch debuggen habe ich herausgefunden, dass er hier in der Klasse XMLEncoder.class auftritt:

    Code:
     public void writeStatement(Statement oldStm) {
            boolean internal = this.internal;
            this.internal = true;
            try {
                super.writeStatement(oldStm);
                mark(oldStm);
                Object target = oldStm.getTarget();
                if (target instanceof Field) {
                    String method = oldStm.getMethodName();
                    Object[] args = oldStm.getArguments();
                    if ((method == null) || (args == null)) {
                    }
                    else if (method.equals("get") && (args.length == 1)) {
                        target = args[0];
                    }
                    else if (method.equals("set") && (args.length == 2)) {
                        target = args[0];
                    }
                }
                statementList(target).add(oldStm);
            }
            catch (Exception e) {
                getExceptionListener().exceptionThrown(new Exception("XMLEncoder: discarding statement " + oldStm, e));
            }
            this.internal = internal;
        }
    Kann mir jemand erklären, was genau das problem ist und was ich tun könnte, um es zu lösen?

  • #2
    Warum suchst du den Fehler in einer fremden Klasse?
    Sollten wir hier raten was du gemacht hast?

    Wenn die Klasse String bei der Benutzung der Methode substring eine IndexOutOfBoundsException wirft, dann postest du den Source der Klasse String?
    Christian

    Comment


    • #3
      Ich dachte jemand könnte mir sagen was mit dem oldStm sein könnte, also weshalb er in den catch block springt.

      Comment


      • #4
        Ja, das kann dir die Dokumentation sagen:
        http://docs.oracle.com/javase/6/docs...MLEncoder.html

        Ich fasse nochmal zusammen:

        Du hast etwas programmiert
        Du bekommst einen Fehler
        Anstatt deinen Sourcen zu prüfen, stöberst du in den Source der API rum
        Findest die Stelle, die die Exception wirfst
        Fragst jetzt im Forum warum die Exception geworfen wird und postest den Code der API
        Zuletzt editiert von Christian Marquardt; 23.07.2013, 08:38.
        Christian

        Comment


        • #5
          ich weiß ja,dass es an meinem code liegt, aber ich wollte wissen, wann der die exception wirft, also ist die Ursache, dass setName null als Argument hat?

          Mein Code, wo die Exception geworfen wird, ist :

          Code:
          private String inhalt;
          
          public Auto getAuto()
          	{
          		Auto auto = null;
          		XMLDecoder dec = null; 
          		 
          		if(inhalt != null && !inhalt.isEmpty())
          		{
          		    try 
          		    {
          		    	ByteArrayInputStream s = new ByteArrayInputStream(inhalt.getBytes("UTF-8")); 
          		    	dec = new XMLDecoder( s ); 
          		 		    	
          		    	auto = (Auto) dec.readObject();		    	
          		    	
          		    	dec.close();
          		    } 
          		    catch ( Exception e ) { 
          		      e.printStackTrace(); 
          		    } 
          		}
          		
          		return auto;
          	}
          Zuletzt editiert von Chickaria; 23.07.2013, 08:52.

          Comment


          • #6
            http://entwickler-forum.de/showthrea...ispiel-zu-JAXB

            Des Weiteren:
            Wo ist die Klasse Auto, wo ist der Code für das schreiben der Klasse. Obiger Code nützt alleine nichts.

            Aber die Nutzung von JAXB ist vorzuziehen
            Zuletzt editiert von Christian Marquardt; 23.07.2013, 09:17.
            Christian

            Comment

            Working...
            X