# "Der tatsächliche Codepunkt stimmt nicht mit dem erwarteten Codepunkt überein"



## professorchimp (9. Nov 2009)

Hallo,
ich programmiere gerade eine JSF Webanwendung, die eine derby datenbank benutzt und habe dabei ein kleines problemchen...
Ich lasse alle Datenbankzugriffe über eine Klasse "DatabaseHandler" laufen. Diese Klasse hat eine Methode "getData", die eine beliebige SQL Query ausführt und das resultierende ResultSet zurückgibt.
Aus anderen Klassen rufe ich die getData Methode aus dem DatabaseHandler dann auf und nehme das ResultSet entgegen und verarbeite es weiter. Im Codebeispiel unten geht es dabei um eine Benutzerverwaltung.

Das funktioniert auch soweit, d.h. ich bekomme die richtigen ergebnisse für meine abfragen. Gleichzeitig bekomme ich aber unmengen an exceptions dieser art: "org.apache.derby.client.am.DisconnectException: Netzprotokollausnahme: Der tatsächliche Codepunkt 4.692 stimmt nicht mit dem erwarteten Codepunkt 9.224 überein. Die Verbindung wurde beendet."

Ich kann mit dieser Fehlerbeschreibung leider überhaupt nichts anfangen und kann mir auch nicht erklären wieso dieser fehler auftritt. Unten seht ihr die quellcodes und eine kopie der consolenausgabe der fehler.

Hat vielleicht jemand einen tip woher das kommen könnte und/oder wie ich das beheben kann?
Wäre echt super!
Vielen dank schonmal!



Klasse DatabaseHandler

```
public class DatabaseHandler
{
	
	 String dbURL = "jdbc:derby://localhost:1527/myDB;create=true;user=xxxxxx;password=xxxxxx";
	 Connection conn = null;
	 Statement stmt = null;
	
  
  private void shutdown()
  {
      try
      {
          if (conn != null)
          {
              DriverManager.getConnection(dbURL + ";shutdown=true");
              conn.close();
          }           
      }
      catch (SQLException sqlExcept)
      {
          
      }

  }
  
  
  
  private void createConnection()
  {
      try
      {
          Class.forName("org.apache.derby.jdbc.ClientDriver").newInstance();
          //Get a connection
          conn = DriverManager.getConnection(dbURL); 
      }
      catch (Exception except)
      {
          except.printStackTrace();
      }
  }
  


  public ResultSet getData(String query)
  {
      createConnection();
	  
	  try
      {
          stmt = conn.createStatement();
          ResultSet results = stmt.executeQuery(query);        
          shutdown();
          return results;
      }
      catch (SQLException sqlExcept)
      {
          sqlExcept.printStackTrace();
          shutdown();
          return null;
      }
  }
}
```



Methode aus aufrufender Klasse

```
public Benutzer[] getAll(){
	
		results = dbh.getData("Select * From Benutzer");
		benutzerList = new LinkedList<Benutzer>();
		
		try{
			while (results.next()) {
				benutzerList.add(new Benutzer(
						results.getInt(1),
						results.getString(2),
						results.getInt(4),
						results.getString(5),
						results.getString(6)
				));
			}
		}
		catch (SQLException sqlExcept){
		          sqlExcept.printStackTrace();
		}
	
		return lectureList.toArray(new Benutzer[benutzerList.size()]);
		
	
	}
```


Konsolen-Ausgabe

```
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:97)
	at com.sun.faces.lifecycle.RestoreViewPhase.doPhase(RestoreViewPhase.java:110)
	at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:310)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
	at java.lang.Thread.run(Unknown Source)
Caused by: org.apache.derby.client.am.DisconnectException: Netzprotokollausnahme: Der tatsächliche Codepunkt 4.692 stimmt nicht mit dem erwarteten Codepunkt 9.224 überein. Die Verbindung wurde beendet.
	at org.apache.derby.client.net.Reply.parseLengthAndMatchCodePoint(Unknown Source)
	at org.apache.derby.client.net.NetConnectionReply.parseSQLCARD(Unknown Source)
	at org.apache.derby.client.net.NetConnectionReply.parseRDBCMMreply(Unknown Source)
	at org.apache.derby.client.net.NetConnectionReply.readLocalCommit(Unknown Source)
	at org.apache.derby.client.net.ConnectionReply.readLocalCommit(Unknown Source)
	at org.apache.derby.client.net.NetConnection.readLocalCommit_(Unknown Source)
	at org.apache.derby.client.am.Connection.readCommit(Unknown Source)
	at org.apache.derby.client.am.Connection.flowCommit(Unknown Source)
	at org.apache.derby.client.am.Connection.flowAutoCommit(Unknown Source)
	at org.apache.derby.client.am.Statement.resultSetCommitting(Unknown Source)
	at org.apache.derby.client.am.Statement.resultSetCommitting(Unknown Source)
	at org.apache.derby.client.am.ResultSet.nextX(Unknown Source)
	... 45 more
java.sql.SQLException: Netzprotokollausnahme: Der tatsächliche Codepunkt 4.692 stimmt nicht mit dem erwarteten Codepunkt 9.224 überein. Die Verbindung wurde beendet.
	at org.apache.derby.client.am.SQLExceptionFactory.getSQLException(Unknown Source)
	at org.apache.derby.client.am.SqlException.getSQLException(Unknown Source)
	at org.apache.derby.client.am.ResultSet.next(Unknown Source)
	at coreservlets.LectureManager.getAllLectures(LectureManager.java:88)
	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 javax.el.BeanELResolver.getValue(BeanELResolver.java:62)
	at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:54)
	at com.sun.faces.el.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:72)
	at org.apache.el.parser.AstValue.getValue(AstValue.java:118)
	at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
	at com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:102)
	at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:190)
	at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:178)
	at javax.faces.component.UIData.getValue(UIData.java:551)
	at javax.faces.component.UIData.getDataModel(UIData.java:1239)
	at javax.faces.component.UIData.setRowIndex(UIData.java:444)
	at javax.faces.component.UIData.iterate(UIData.java:1348)
	at javax.faces.component.UIData.processDecodes(UIData.java:971)
	at javax.faces.component.UIForm.processDecodes(UIForm.java:213)
	at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1042)
	at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1042)
	at javax.faces.component.UIViewRoot.processDecodes(UIViewRoot.java:940)
	at com.sun.faces.lifecycle.ApplyRequestValuesPhase.execute(ApplyRequestValuesPhase.java:78)
	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:97)
	at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:310)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
	at java.lang.Thread.run(Unknown Source)
Caused by: org.apache.derby.client.am.DisconnectException: Netzprotokollausnahme: Der tatsächliche Codepunkt 4.692 stimmt nicht mit dem erwarteten Codepunkt 9.224 überein. Die Verbindung wurde beendet.
	at org.apache.derby.client.net.Reply.parseLengthAndMatchCodePoint(Unknown Source)
	at org.apache.derby.client.net.NetConnectionReply.parseSQLCARD(Unknown Source)
	at org.apache.derby.client.net.NetConnectionReply.parseRDBCMMreply(Unknown Source)
	at org.apache.derby.client.net.NetConnectionReply.readLocalCommit(Unknown Source)
	at org.apache.derby.client.net.ConnectionReply.readLocalCommit(Unknown Source)
	at org.apache.derby.client.net.NetConnection.readLocalCommit_(Unknown Source)
	at org.apache.derby.client.am.Connection.readCommit(Unknown Source)
	at org.apache.derby.client.am.Connection.flowCommit(Unknown Source)
	at org.apache.derby.client.am.Connection.flowAutoCommit(Unknown Source)
	at org.apache.derby.client.am.Statement.resultSetCommitting(Unknown Source)
	at org.apache.derby.client.am.Statement.resultSetCommitting(Unknown Source)
	at org.apache.derby.client.am.ResultSet.nextX(Unknown Source)
	... 39 more
java.sql.SQLException: Netzprotokollausnahme: Der tatsächliche Codepunkt 4.692 stimmt nicht mit dem erwarteten Codepunkt 9.224 überein. Die Verbindung wurde beendet.
	at org.apache.derby.client.am.SQLExceptionFactory.getSQLException(Unknown Source)
	at org.apache.derby.client.am.SqlException.getSQLException(Unknown Source)
	at org.apache.derby.client.am.ResultSet.next(Unknown Source)
	at coreservlets.LectureManager.getAllLectures(LectureManager.java:88)
	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 javax.el.BeanELResolver.getValue(BeanELResolver.java:62)
	at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:54)
	at com.sun.faces.el.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:72)
	at org.apache.el.parser.AstValue.getValue(AstValue.java:118)
	at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
	at com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:102)
	at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:190)
	at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:178)
	at javax.faces.component.UIData.getValue(UIData.java:551)
	at javax.faces.component.UIData.getDataModel(UIData.java:1239)
	at javax.faces.component.UIData.setRowIndex(UIData.java:444)
	at javax.faces.component.UIData.iterate(UIData.java:1364)
	at javax.faces.component.UIData.processDecodes(UIData.java:971)
	at javax.faces.component.UIForm.processDecodes(UIForm.java:213)
	at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1042)
	at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1042)
	at javax.faces.component.UIViewRoot.processDecodes(UIViewRoot.java:940)
	at com.sun.faces.lifecycle.ApplyRequestValuesPhase.execute(ApplyRequestValuesPhase.java:78)
	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:97)
	at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:310)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
	at java.lang.Thread.run(Unknown Source)
Caused by: org.apache.derby.client.am.DisconnectException: Netzprotokollausnahme: Der tatsächliche Codepunkt 4.692 stimmt nicht mit dem erwarteten Codepunkt 9.224 überein. Die Verbindung wurde beendet.
	at org.apache.derby.client.net.Reply.parseLengthAndMatchCodePoint(Unknown Source)
	at org.apache.derby.client.net.NetConnectionReply.parseSQLCARD(Unknown Source)
	at org.apache.derby.client.net.NetConnectionReply.parseRDBCMMreply(Unknown Source)
	at org.apache.derby.client.net.NetConnectionReply.readLocalCommit(Unknown Source)
	at org.apache.derby.client.net.ConnectionReply.readLocalCommit(Unknown Source)
	at org.apache.derby.client.net.NetConnection.readLocalCommit_(Unknown Source)
	at org.apache.derby.client.am.Connection.readCommit(Unknown Source)
	at org.apache.derby.client.am.Connection.flowCommit(Unknown Source)
	at org.apache.derby.client.am.Connection.flowAutoCommit(Unknown Source)
	at org.apache.derby.client.am.Statement.resultSetCommitting(Unknown Source)
	at org.apache.derby.client.am.Statement.resultSetCommitting(Unknown Source)
	at org.apache.derby.client.am.ResultSet.nextX(Unknown Source)
	... 39 more
java.sql.SQLException: Netzprotokollausnahme: Der tatsächliche Codepunkt 4.692 stimmt nicht mit dem erwarteten Codepunkt 9.224 überein. Die Verbindung wurde beendet.
	at org.apache.derby.client.am.SQLExceptionFactory.getSQLException(Unknown Source)
	at org.apache.derby.client.am.SqlException.getSQLException(Unknown Source)
	at org.apache.derby.client.am.ResultSet.next(Unknown Source)
	at coreservlets.LectureManager.getAllLectures(LectureManager.java:88)
	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 javax.el.BeanELResolver.getValue(BeanELResolver.java:62)
	at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:54)
	at com.sun.faces.el.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:72)
	at org.apache.el.parser.AstValue.getValue(AstValue.java:118)
	at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
	at com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:102)
	at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:190)
	at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:178)
	at javax.faces.component.UIData.getValue(UIData.java:551)
	at javax.faces.component.UIData.getDataModel(UIData.java:1239)
	at javax.faces.component.UIData.setRowIndex(UIData.java:444)
	at javax.faces.component.UIData.iterate(UIData.java:1399)
	at javax.faces.component.UIData.processDecodes(UIData.java:971)
	at javax.faces.component.UIForm.processDecodes(UIForm.java:213)
	at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1042)
	at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1042)
	at javax.faces.component.UIViewRoot.processDecodes(UIViewRoot.java:940)
	at com.sun.faces.lifecycle.ApplyRequestValuesPhase.execute(ApplyRequestValuesPhase.java:78)
	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:97)
	at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:310)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
	at java.lang.Thread.run(Unknown Source)
Caused by: org.apache.derby.client.am.DisconnectException: Netzprotokollausnahme: Der tatsächliche Codepunkt 4.692 stimmt nicht mit dem erwarteten Codepunkt 9.224 überein. Die Verbindung wurde beendet.
	at org.apache.derby.client.net.Reply.parseLengthAndMatchCodePoint(Unknown Source)
	at org.apache.derby.client.net.NetConnectionReply.parseSQLCARD(Unknown Source)
	at org.apache.derby.client.net.NetConnectionReply.parseRDBCMMreply(Unknown Source)
	at org.apache.derby.client.net.NetConnectionReply.readLocalCommit(Unknown Source)
	at org.apache.derby.client.net.ConnectionReply.readLocalCommit(Unknown Source)
	at org.apache.derby.client.net.NetConnection.readLocalCommit_(Unknown Source)
	at org.apache.derby.client.am.Connection.readCommit(Unknown Source)
	at org.apache.derby.client.am.Connection.flowCommit(Unknown Source)
	at org.apache.derby.client.am.Connection.flowAutoCommit(Unknown Source)
	at org.apache.derby.client.am.Statement.resultSetCommitting(Unknown Source)
	at org.apache.derby.client.am.Statement.resultSetCommitting(Unknown Source)
	at org.apache.derby.client.am.ResultSet.nextX(Unknown Source)
	... 39 more
```


----------



## HoaX (9. Nov 2009)

Du schließt deine Verbindung und versuchst danach auf das ResultSet zuzugereifen, klar dass das nicht klappt.


----------



## professorchimp (9. Nov 2009)

ok danke! hab das ganze ein bischen sauberer programmiert und jetzt hat sich das problem gelöst...

aber schon komisch, dass es zwar unmengen an exceptions geworfen hat aber trotzdem im endeffekt funktioniert hat..


----------



## maki (9. Nov 2009)

professorchimp hat gesagt.:


> aber schon komisch, dass es zwar unmengen an exceptions geworfen hat aber trotzdem im endeffekt funktioniert hat..


Das solltest du deinem Kunden so nicht sagen :lol:

Unittests sind eine sehr gute Möglichkeit um solche Fehler zu finden, auch helfen sie beim Refactoren ("sauberer programmiert") weil man immer ein funktionierendes Projekt hat


----------

