Announcement

Collapse
No announcement yet.
X
  • Filter
  • Time
Clear All
new posts

    A bug with transaction boundaries?

    Hi!

    I have a nasty bug in my application, but I can’t reproduce it intentionally so far, though it appears quite often.

    My environment: SmartGWTEE 2.5 nightly build 2011-09-02, Java 6, GWT 2.3.0, PostgreSQL 9, Tomcat 6.

    I know I need to post my stack trace, but first, I’ll try to explain what I’m trying to do in my code and what happens.

    I have s DMI class that handles a complex SQL transaction spanning maybe a dozen various SQL operations (fetch, insert, update, delete) on several tables.

    File: dnevnikDS.xml
    Code:
    <DataSource 
    	dbName="PostgreSQL"
    	tableName="dnevnik"
    	ID="dnevnikDS"
    	serverType="sql"
    	autoDeriveSchema="true"
    >
    	<fields>
    		<field name="dnevnik_id"  	type="sequence" hidden="true" primaryKey="true" sequenceName="dnevnik_dnevnik_id_seq"></field>
                            ….
                            // other fields
    	</fields>
    
    	<operationBindings>
    		<operationBinding operationType="add" operationId="add_dnevnik">
    			<serverObject className="com.mycompany.crm.server.dmi.DnevnikDMI" methodName="addDnevnik"/>
    		</operationBinding>
    		
    	</operationBindings>
    My DMI class:
    Code:
    package com.mycompany.crm.server.dmi;
    public class DnevnikDMI {
    	public DSResponse addDnevnik(DSRequest dsRequest) throws Exception {
    		DSResponse dsResponse = dsRequest.execute();
    		if (dsResponse.statusIsError()) {
    			return dsResponse;
    		}
    
    		DSRequest req2 = new DSRequest("anotherDS", "update", dsRequest.getRPCManager());
    		Map<String, Object> m2 = new HashMap<String, Object>();
    		m2.put("some_field", values.get("some_field));
    		req2.setValues(m2);
    		req2.setCriteria("some_field", “something”);
    		DSResponse res2 = req2.execute();
    		if (res2.statusIsError()) {
    			return res2;
    		}
    
                            // several SQL operations
    		DSRequest req5 = new DSRequest("yetAnotherDS", "update", dsRequest.getRPCManager());
    		Map<String, Object> m5 = new HashMap<String, Object>();
    		m5.put("some_field", values.get("some_field));
    		req5.setValues(m5);
    		req5.setCriteria("some_field", “something”);
    		DSResponse res5 = req5.execute();
    		if (res5.statusIsError()) {
    			return res5;
    		}
    
                            return res;
    }
    SQL operation that are called from the DMI class are standard SQL operations, without any customization, or minimal through SQL templating.

    My server.properties:
    Code:
    sql.defaultDatabase: PostgreSQL
    sql.PostgreSQL.autoJoinTransactions: ALL
    sql.PostgreSQL.interface.credentialsInURL: false
    sql.PostgreSQL.driver.context: _container_
    sql.PostgreSQL.driver.portNumber: 5432
    sql.PostgreSQL.driver: org.postgresql.Driver
    sql.PostgreSQL.driver.password: secret
    sql.PostgreSQL.driver.driverName: postgresql
    sql.PostgreSQL.driver.networkProtocol: tcp
    sql.PostgreSQL.interface.type: driverManager
    sql.PostgreSQL.driver.serverName: localhost
    sql.PostgreSQL.database.type: postgresql
    sql.PostgreSQL.driver.databaseName: my_db
    sql.PostgreSQL.driver.name: PostgreSQL
    sql.PostgreSQL.driver.driverType: thin
    sql.PostgreSQL.driver.user: db_user
    So, my basic assumption is that all SQL operations called from my DMI class should be executed in the SINGLE TRANSACTION, considering that I have set sql.PostgreSQL.autoJoinTransactions to ALL.

    And that happens... almost every time.

    In some weird situations (especially when my customers test), this one scenario happens (as I can see from the log):
    - the first 2 SQL operations get executed successfully
    - something happens that causes that current transaction gets commited
    - I conclude from the log that the next SQL operation in the DMI doesn’t succeed because there is no open connection and I receive IOException: Stream closed from PostgreSQL JDBC driver because I’m obviously trying to execute a statement against a stale or closed connection

    As a result, I my transaction gets PARTLY EXECUTED, so it is not a transaction anymore.

    I will continue trying to reproduce the bug, but right now I wonder if I have misunderstood some basic concept here.

    I know you need my stacktrace, but it would take to much time to extract confidential information from it, so please provide an e-mail address where I can send it to. I will send it tomorrow morning (Central European Time).

    Thx.

    #2
    You're in luck - we know what this is, and it was fixed Friday. Grab a nightly from smartclient.com/builds.

    Comment


      #3
      Originally posted by Isomorphic
      You're in luck - we know what this is, and it was fixed Friday. Grab a nightly from smartclient.com/builds.
      No kidding? :-)

      I will celebrate like crazy if you solve that...

      Comment


        #4
        Originally posted by Isomorphic
        You're in luck - we know what this is, and it was fixed Friday. Grab a nightly from smartclient.com/builds.
        I upgraded to SmartGWT Power build 2011-10-11 and the bug happened again.

        I have stacktrace to send, please provide an email address.

        Comment


          #5
          First very very carefully verify you've installed the new build and you're really running it. Your symptoms match the recent fix exactly.

          Then, if you feel confident you've installed correctly, go ahead and post diagnostics here (not via email).

          Comment


            #6
            Originally posted by Isomorphic
            First very very carefully verify you've installed the new build and you're really running it. Your symptoms match the recent fix exactly.

            Then, if you feel confident you've installed correctly, go ahead and post diagnostics here (not via email).
            Ok, I'll double check that I've installed it correctly.

            Comment


              #7
              Originally posted by Isomorphic
              First very very carefully verify you've installed the new build and you're really running it. Your symptoms match the recent fix exactly.

              Then, if you feel confident you've installed correctly, go ahead and post diagnostics here (not via email).
              Hi!

              I upgraded to SmarGWT 2.5 build 2011-20-21, and very, very carefully deployed the application from scratch, and I got the same bug, several times during 10 minutes of testing with seven of my end-users simultaneously, though the one that is in the stacktrace happened with just one active user.

              In the meantime, I downgraded PostgreSQL from 9.0.x to 8.4.x, and the JDBC driver respectively.

              Here is my stacktrace, stripped from confidential information.

              Code:
              === 2011-10-21 12:59:20,311 [80-3] INFO  RequestContext - URL: '/crm/sc/IDACall', User-Agent: 'Mozilla/5.0 (Windows NT 6.1; rv:5.0) Gecko/20100101 Firefox/5.0': Moz (Gecko) with Accept-Encoding header
              === 2011-10-21 12:59:20,313 [80-3] DEBUG XML - Parsed XML from (in memory stream): 1ms
              === 2011-10-21 12:59:20,317 [80-3] DEBUG RPCManager - Processing 1 requests.
              === 2011-10-21 12:59:20,317 [80-3] DEBUG RPCManager - Request #1 (DSRequest) payload: {
                  values:{
                      kreirao_id:2,
                      ime:"<UNDISCLOSED>",
                      prezime:"<UNDISCLOSED>",
                      email1:"<UNDISCLOSED>",
                      godina_rodjenja:1986,
                      adresa:"<UNDISCLOSED>",
                      dnevnik_poruka:"<UNDISCLOSED>",
                      jezik_id:73,
                      drzava_id:82,
                      mobitel:"<UNDISCLOSED>",
                      trziste_jezik_id:3,
                      spol:"Z",
                      upit_id:18
                  },
                  operationConfig:{
                      dataSource:"kontaktDS",
                      operationType:"add"
                  },
                  componentId:"isc_KontaktAddIzUpitaDynamicForm_0",
                  appID:"builtinApplication",
                  operation:"add_kontakt_iz_upita",
                  oldValues:{
                  },
                  criteria:{
                  }
              }
              === 2011-10-21 12:59:20,318 [80-3] INFO  IDACall - Performing 1 operation(s)
              === 2011-10-21 12:59:20,319 [80-3] INFO  KontaktDMI - KontaktDMI.addKontaktIzUpita
              === 2011-10-21 12:59:20,319 [80-3] DEBUG AppBase - [builtinApplication.add_kontakt_iz_upita] No userTypes defined, allowing anyone access to all operations for this application
              === 2011-10-21 12:59:20,319 [80-3] DEBUG AppBase - [builtinApplication.add_kontakt_iz_upita] No public zero-argument method named '_add_kontakt_iz_upita' found, performing generic datasource operation
              === 2011-10-21 12:59:20,320 [80-3] INFO  SQLDataSource - [builtinApplication.add_kontakt_iz_upita] Performing add operation with
              	criteria: {kreirao_id:2,ime:"<UNDISCLOSED>",prezime:"<UNDISCLOSED>",email1:"<UNDISCLOSED>",godina_rodjenja:1986,adresa:"<UNDISCLOSED>",dnevnik_poruka:"<UNDISCLOSED>",jezik_id:73,drzava_id:82,mobitel:"<UNDISCLOSED>",trziste_jezik_id:3,spol:"Z",upit_id:18}	values: {kreirao_id:2,ime:"<UNDISCLOSED>",prezime:"<UNDISCLOSED>",email1:"<UNDISCLOSED>",godina_rodjenja:1986,adresa:"<UNDISCLOSED>",dnevnik_poruka:"<UNDISCLOSED>",jezik_id:73,drzava_id:82,mobitel:"<UNDISCLOSED>",trziste_jezik_id:3,spol:"Z",upit_id:18,vrijeme_kreiranja:new Date(1319194760319),promijenio_id:2,status_kontakt_id:101,sljedeca_aktivnost_kontakt_id:2,vrijeme_sljedece_aktivnosti_od:new Date(1319176800000),vrijeme_sljedece_aktivnosti_do:new Date(1319220000000)}
              === 2011-10-21 12:59:20,320 [80-3] INFO  SQLValuesClause - [builtinApplication.add_kontakt_iz_upita] Ignored data for non-existent columns: [dnevnik_poruka, upit_id]
              === 2011-10-21 12:59:20,320 [80-3] DEBUG SQLValuesClause - [builtinApplication.add_kontakt_iz_upita] Sequences: {kontakt_id=kontakt_kontakt_id_seq}
              === 2011-10-21 12:59:20,321 [80-3] DEBUG PoolableSQLConnectionFactory - [builtinApplication.add_kontakt_iz_upita] DriverManager fetching connection for PostgreSQL via jdbc url jdbc:postgresql://localhost:5432/crm_db_test
              === 2011-10-21 12:59:20,321 [80-3] DEBUG PoolableSQLConnectionFactory - [builtinApplication.add_kontakt_iz_upita] Passing credentials getConnection separately from JDBC URL
              === 2011-10-21 12:59:20,325 [80-3] DEBUG PoolableSQLConnectionFactory - [builtinApplication.add_kontakt_iz_upita] Returning pooled Connection
              === 2011-10-21 12:59:20,326 [80-3] DEBUG SQLTransaction - [builtinApplication.add_kontakt_iz_upita] Started new PostgreSQL transaction "22006934"
              === 2011-10-21 12:59:20,326 [80-3] INFO  SQLDriver - [builtinApplication.add_kontakt_iz_upita] Executing SQL update on 'PostgreSQL': INSERT INTO kontakt (adresa, drzava_id, email1, godina_rodjenja, ime, jezik_id, kreirao_id, mobitel, prezime, promijenio_id, sljedeca_aktivnost_kontakt_id, spol, status_kontakt_id, trziste_jezik_id, vrijeme_kreiranja, vrijeme_sljedece_aktivnosti_do, vrijeme_sljedece_aktivnosti_od, kontakt_id) VALUES ('<UNDISCLOSED>', 82, '<UNDISCLOSED>', 1986, '<UNDISCLOSED>', 73, 2, '<UNDISCLOSED>', '<UNDISCLOSED>', 2, 2, 'Z', 101, 3, '2011-10-21 12:59:20', '2011-10-21 20:00:00', '2011-10-21 08:00:00', nextval('kontakt_kontakt_id_seq'))
              === 2011-10-21 12:59:20,334 [80-3] DEBUG SQLDataSource - [builtinApplication.add_kontakt_iz_upita] add operation affected 1 rows
              === 2011-10-21 12:59:20,334 [80-3] INFO  SQLDriver - [builtinApplication.add_kontakt_iz_upita] Executing SQL query on 'PostgreSQL': SELECT currval('kontakt_kontakt_id_seq')
              === 2011-10-21 12:59:20,335 [80-3] INFO  SQLDataSource - [builtinApplication.add_kontakt_iz_upita] primaryKeys: {kontakt_id=17}
              === 2011-10-21 12:59:20,335 [80-3] INFO  SQLDataSource - [builtinApplication.add_kontakt_iz_upita] PostgreSQL getLastRow(): using default operationBinding
              === 2011-10-21 12:59:20,336 [80-3] DEBUG AppBase - [builtinApplication.add_kontakt_iz_upita, builtinApplication.null] No userTypes defined, allowing anyone access to all operations for this application
              === 2011-10-21 12:59:20,336 [80-3] DEBUG AppBase - [builtinApplication.add_kontakt_iz_upita, builtinApplication.null] No public zero-argument method named '_null' found, performing generic datasource operation
              === 2011-10-21 12:59:20,336 [80-3] INFO  SQLDataSource - [builtinApplication.add_kontakt_iz_upita, builtinApplication.null] Performing fetch operation with
              	criteria: {kontakt_id:17}	values: {kontakt_id:17}
              === 2011-10-21 12:59:20,337 [80-3] INFO  SQLDataSource - [builtinApplication.add_kontakt_iz_upita, builtinApplication.null] derived query: SELECT 
              				$defaultSelectClause
              				, concat_with_comma(format_phone_number(d.tel_predbroj, kontakt.fiksni_telefon), format_phone_number(d.tel_predbroj, kontakt.mobitel), format_phone_number(d.tel_predbroj, kontakt.telefon3)) AS svi_telefoni
              				, concat_with_comma(kontakt.email1, kontakt.email2, NULL) AS svi_emailovi
              				, d.hr_naziv AS drzava_hr_naziv
              				, concat_with_comma(kontakt.adresa, d.iso_kod2, NULL) AS adresa_za_prikaz
              				, j.iso_kod2 || ' (' || j.hr_naziv || ')' AS jezik_naziv_kratica
              				, t.naziv || ' - ' || tjj.hr_naziv AS trziste_jezik_naziv_za_prikaz
              				, o.ime_naziv AS obradjuje_ime_naziv
              				, NULL AS obradjuje_indikator
              				, k.ime_naziv AS kreirao_ime_naziv
              				, p.ime_naziv AS promijenio_ime_naziv
              				, a.ime_naziv AS agent_ime_naziv
              				, pa.kratica AS provizija_agenta_kratica
              				, CASE WHEN pr.ime IS NOT NULL THEN pr.ime || ' ' || pr.prezime ELSE NULL END AS preporucio_ime_prezime
              				, sk.naziv AS status_naziv
              				, ak.naziv_buducnost AS sljedeca_aktivnost_naziv
              				, ak.prioritet AS sljedeca_aktivnost_prioritet
              				, h.naziv AS hitnost_naziv
              				, (SELECT izvor_id FROM upit WHERE upit_id = (SELECT MIN(upit_id) FROM upit u WHERE u.kontakt_id = kontakt.kontakt_id)) AS upit_izvor_id
              				, po.posjet_id AS posjet_id
              				, po.datum_dolaska AS posjet_datum_dolaska
              			 FROM 
              				kontakt 
              					JOIN v_korisnik k ON k.korisnik_id = kontakt.kreirao_id
              					JOIN v_korisnik p ON p.korisnik_id = kontakt.promijenio_id
              					JOIN status_kontakt sk USING (status_kontakt_id)
              					JOIN aktivnost_kontakt ak ON ak.aktivnost_kontakt_id = kontakt.sljedeca_aktivnost_kontakt_id
              					JOIN hitnost h USING (hitnost_id)
              					LEFT JOIN v_korisnik o ON o.korisnik_id = kontakt.obradjuje_id
              					LEFT JOIN drzava d USING (drzava_id)
              					LEFT JOIN jezik j USING (jezik_id) 
              					LEFT JOIN trziste_jezik tj USING (trziste_jezik_id) LEFT JOIN jezik tjj ON tj.jezik_id = tjj.jezik_id LEFT JOIN trziste t USING (trziste_id)  
              					LEFT JOIN v_agent a USING (agent_id)
              					LEFT JOIN provizija_agenta pa USING (provizija_agenta_id)
              					LEFT JOIN kontakt pr ON pr.kontakt_id = kontakt.preporucio_id
              					LEFT JOIN posjet po ON po.kontakt_id = kontakt.kontakt_id AND po.aktualno = 't'
              			 WHERE $defaultWhereClause
              === 2011-10-21 12:59:20,338 [80-3] INFO  SQLDriver - [builtinApplication.add_kontakt_iz_upita, builtinApplication.null] Executing SQL query on 'PostgreSQL': SELECT 
              				kontakt.prezime, kontakt.provizija_agenta_id, kontakt.gc_route, kontakt.vrijeme_sljedece_aktivnosti_od, kontakt.obradjuje_id, kontakt.ime, kontakt.gc_adm_area1_long, kontakt.gc_adm_area1_short, kontakt.gc_country_long, kontakt.kontakt_id, kontakt.drzava_id, kontakt.telefon3, kontakt.adresa, kontakt.agent_id, CASE WHEN kontakt.vrijeme_sljedece_aktivnosti_od IS NOT NULL THEN to_char(kontakt.vrijeme_sljedece_aktivnosti_od, 'DD.MM.YYYY HH24:MI') || ' - ' || to_char(kontakt.vrijeme_sljedece_aktivnosti_do, 'HH24:MI') ELSE NULL END AS vrijeme_od_do, kontakt.trziste_jezik_id, kontakt.napomena, kontakt.kreirao_id, kontakt.gc_locality, kontakt.gc_location_lon, kontakt.gc_adm_area2_long, kontakt.sljedeca_aktivnost_kontakt_id, kontakt.status_kontakt_id, kontakt.datum_rodjenja, kontakt.fiksni_telefon, kontakt.gc_country_short, kontakt.gc_location_lat, kontakt.promijenio_id, kontakt.gc_street_address, kontakt.vrijeme_kreiranja, kontakt.jezik_id, kontakt.ime || ' ' || kontakt.prezime AS ime_prezime, kontakt.vrijeme_sljedece_aktivnosti_do, kontakt.vrijeme_promjene, kontakt.gc_postal_code, kontakt.preporucio_id, kontakt.spol, kontakt.email1, kontakt.email2, kontakt.godina_rodjenja, kontakt.gc_sublocality, kontakt.mobitel, kontakt.gc_adm_area2_short
              				, concat_with_comma(format_phone_number(d.tel_predbroj, kontakt.fiksni_telefon), format_phone_number(d.tel_predbroj, kontakt.mobitel), format_phone_number(d.tel_predbroj, kontakt.telefon3)) AS svi_telefoni
              				, concat_with_comma(kontakt.email1, kontakt.email2, NULL) AS svi_emailovi
              				, d.hr_naziv AS drzava_hr_naziv
              				, concat_with_comma(kontakt.adresa, d.iso_kod2, NULL) AS adresa_za_prikaz
              				, j.iso_kod2 || ' (' || j.hr_naziv || ')' AS jezik_naziv_kratica
              				, t.naziv || ' - ' || tjj.hr_naziv AS trziste_jezik_naziv_za_prikaz
              				, o.ime_naziv AS obradjuje_ime_naziv
              				, NULL AS obradjuje_indikator
              				, k.ime_naziv AS kreirao_ime_naziv
              				, p.ime_naziv AS promijenio_ime_naziv
              				, a.ime_naziv AS agent_ime_naziv
              				, pa.kratica AS provizija_agenta_kratica
              				, CASE WHEN pr.ime IS NOT NULL THEN pr.ime || ' ' || pr.prezime ELSE NULL END AS preporucio_ime_prezime
              				, sk.naziv AS status_naziv
              				, ak.naziv_buducnost AS sljedeca_aktivnost_naziv
              				, ak.prioritet AS sljedeca_aktivnost_prioritet
              				, h.naziv AS hitnost_naziv
              				, (SELECT izvor_id FROM upit WHERE upit_id = (SELECT MIN(upit_id) FROM upit u WHERE u.kontakt_id = kontakt.kontakt_id)) AS upit_izvor_id
              				, po.posjet_id AS posjet_id
              				, po.datum_dolaska AS posjet_datum_dolaska
              			 FROM 
              				kontakt 
              					JOIN v_korisnik k ON k.korisnik_id = kontakt.kreirao_id
              					JOIN v_korisnik p ON p.korisnik_id = kontakt.promijenio_id
              					JOIN status_kontakt sk USING (status_kontakt_id)
              					JOIN aktivnost_kontakt ak ON ak.aktivnost_kontakt_id = kontakt.sljedeca_aktivnost_kontakt_id
              					JOIN hitnost h USING (hitnost_id)
              					LEFT JOIN v_korisnik o ON o.korisnik_id = kontakt.obradjuje_id
              					LEFT JOIN drzava d USING (drzava_id)
              					LEFT JOIN jezik j USING (jezik_id) 
              					LEFT JOIN trziste_jezik tj USING (trziste_jezik_id) LEFT JOIN jezik tjj ON tj.jezik_id = tjj.jezik_id LEFT JOIN trziste t USING (trziste_id)  
              					LEFT JOIN v_agent a USING (agent_id)
              					LEFT JOIN provizija_agenta pa USING (provizija_agenta_id)
              					LEFT JOIN kontakt pr ON pr.kontakt_id = kontakt.preporucio_id
              					LEFT JOIN posjet po ON po.kontakt_id = kontakt.kontakt_id AND po.aktualno = 't'
              			 WHERE (kontakt.kontakt_id='17')
              === 2011-10-21 12:59:20,367 [80-3] INFO  DSResponse - [builtinApplication.add_kontakt_iz_upita, builtinApplication.null] DSResponse: List with 1 items
              === 2011-10-21 12:59:20,367 [80-3] INFO  DSResponse - [builtinApplication.add_kontakt_iz_upita] DSResponse: List with 1 items
              === 2011-10-21 12:59:20,368 [80-3] DEBUG AppBase - [builtinApplication.null] No userTypes defined, allowing anyone access to all operations for this application
              === 2011-10-21 12:59:20,368 [80-3] DEBUG AppBase - [builtinApplication.null] No public zero-argument method named '_null' found, performing generic datasource operation
              === 2011-10-21 12:59:20,369 [80-3] INFO  SQLDataSource - [builtinApplication.null] Performing update operation with
              	criteria: {upit_id:18}	values: {vrijeme_promjene:new Date(1319194760319),status:2,kontakt_id:17,promijenio_id:2}
              === 2011-10-21 12:59:20,370 [80-3] INFO  SQLDriver - [builtinApplication.null] Executing SQL update on 'PostgreSQL': UPDATE upit SET kontakt_id=17, promijenio_id=2, status=2, vrijeme_promjene='2011-10-21 12:59:20' WHERE (upit.upit_id='18')
              === 2011-10-21 12:59:20,371 [80-3] DEBUG SQLDataSource - [builtinApplication.null] update operation affected 1 rows
              === 2011-10-21 12:59:20,371 [80-3] INFO  SQLDataSource - [builtinApplication.null] primaryKeys: {upit_id=18}
              === 2011-10-21 12:59:20,371 [80-3] INFO  SQLDataSource - [builtinApplication.null] PostgreSQL getLastRow(): using default operationBinding
              === 2011-10-21 12:59:20,372 [80-3] DEBUG AppBase - [builtinApplication.null, builtinApplication.null] No userTypes defined, allowing anyone access to all operations for this application
              === 2011-10-21 12:59:20,372 [80-3] DEBUG AppBase - [builtinApplication.null, builtinApplication.null] No public zero-argument method named '_null' found, performing generic datasource operation
              === 2011-10-21 12:59:20,373 [80-3] INFO  SQLDataSource - [builtinApplication.null, builtinApplication.null] Performing fetch operation with
              	criteria: {upit_id:18}	values: {upit_id:18}
              === 2011-10-21 12:59:20,374 [80-3] INFO  SQLDataSource - [builtinApplication.null, builtinApplication.null] derived query: SELECT 
              				$defaultSelectClause, i.skraceni_opis_za_prikaz AS izvor_skraceni_opis_za_prikaz
              				, CASE WHEN k.ime IS NOT NULL THEN k.ime || ' ' || k.prezime ELSE NULL END AS kontakt_ime_prezime
              				, p.ime_naziv AS promijenio_ime_naziv
              			 FROM 
              				upit JOIN v_izvor i USING (izvor_id) LEFT JOIN kontakt k USING (kontakt_id) 
              					 JOIN v_korisnik p ON p.korisnik_id = upit.promijenio_id
              			 WHERE $defaultWhereClause
              === 2011-10-21 12:59:20,374 [80-3] INFO  SQLDriver - [builtinApplication.null, builtinApplication.null] Executing SQL query on 'PostgreSQL': SELECT 
              				upit.upit_id, upit.grad, upit.prezime, upit.drzava, upit.sirovi_tekst, upit.vrijeme_dolaska, upit.ime, upit.poruka, upit.jezik, upit.promijenio_id, upit.vrijeme_kreiranja, upit.attachment_filename, upit.izvor_id, upit.kontakt_id, upit.email_from, upit.vrijeme_promjene, upit.starost, attachment IS NOT NULL AS ima_attachment, upit.status, attachment_filesize / 1024 AS attachment_velicina_kb, upit.attachment, upit.telefon, upit.attachment_date_created, upit.ip, upit.attachment_filesize, upit.email, upit.kreirao_id, upit.user_agent, upit.email_subject, upit.referer, i.skraceni_opis_za_prikaz AS izvor_skraceni_opis_za_prikaz
              				, CASE WHEN k.ime IS NOT NULL THEN k.ime || ' ' || k.prezime ELSE NULL END AS kontakt_ime_prezime
              				, p.ime_naziv AS promijenio_ime_naziv
              			 FROM 
              				upit JOIN v_izvor i USING (izvor_id) LEFT JOIN kontakt k USING (kontakt_id) 
              					 JOIN v_korisnik p ON p.korisnik_id = upit.promijenio_id
              			 WHERE (upit.upit_id='18')
              === 2011-10-21 12:59:20,391 [izer] DEBUG SQLTransaction - Ending PostgreSQL transaction "22006934"
              === 2011-10-21 12:59:20,411 [80-3] INFO  DSResponse - [builtinApplication.null, builtinApplication.null] DSResponse: List with 1 items
              === 2011-10-21 12:59:20,411 [80-3] INFO  DSResponse - [builtinApplication.null] DSResponse: List with 1 items
              === 2011-10-21 12:59:20,412 [80-3] DEBUG AppBase - [builtinApplication.null] No userTypes defined, allowing anyone access to all operations for this application
              === 2011-10-21 12:59:20,412 [80-3] DEBUG AppBase - [builtinApplication.null] No public zero-argument method named '_null' found, performing generic datasource operation
              === 2011-10-21 12:59:20,413 [80-3] INFO  SQLDataSource - [builtinApplication.null] Performing add operation with
              	criteria: {vrijeme_kreiranja:new Date(1319194760319),inicijator:1,kreirao_id:2,aktivnost_kontakt_id:1,komentar:"<UNDISCLOSED>",kontakt_id:17,sredstvo_komunikacije:"F",novi_status_kontakt_id:101,poruka:"<UNDISCLOSED>",stari_status_kontakt_id:100}	values: {vrijeme_kreiranja:new Date(1319194760319),inicijator:1,kreirao_id:2,aktivnost_kontakt_id:1,komentar:"<UNDISCLOSED>",kontakt_id:17,sredstvo_komunikacije:"F",novi_status_kontakt_id:101,poruka:"<UNDISCLOSED>",stari_status_kontakt_id:100}
              === 2011-10-21 12:59:20,414 [80-3] DEBUG SQLValuesClause - [builtinApplication.null] Sequences: {dnevnik_id=dnevnik_dnevnik_id_seq}
              === 2011-10-21 12:59:20,414 [80-3] INFO  SQLDriver - [builtinApplication.null] Executing SQL update on 'PostgreSQL': INSERT INTO dnevnik (aktivnost_kontakt_id, inicijator, komentar, kontakt_id, kreirao_id, novi_status_kontakt_id, poruka, sredstvo_komunikacije, stari_status_kontakt_id, vrijeme_kreiranja, dnevnik_id) VALUES (1, 1, '<UNDISCLOSED>', 17, 2, 101, '<UNDISCLOSED>', 'F', 100, '2011-10-21 12:59:20', nextval('dnevnik_dnevnik_id_seq'))
              === 2011-10-21 12:59:20,437 [80-3] DEBUG DataSourceDMI - Invocation threw exception
              org.postgresql.util.PSQLException: An I/O error occured while sending to the backend.
              	at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:283)
              	at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:510)
              	at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:386)
              	at org.postgresql.jdbc2.AbstractJdbc2Statement.executeUpdate(AbstractJdbc2Statement.java:332)
              	at org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:102)
              	at com.isomorphic.sql.SQLDriver.doUpdate(SQLDriver.java:471)
              	at com.isomorphic.sql.SQLDriver.update(SQLDriver.java:425)
              	at com.isomorphic.sql.SQLDriver.executeUpdate(SQLDriver.java:545)
              	at com.isomorphic.sql.SQLDataSource.executeNativeUpdate(SQLDataSource.java:388)
              	at com.isomorphic.sql.SQLDataSource.SQLExecute(SQLDataSource.java:1341)
              	at com.isomorphic.sql.SQLDataSource.processRequest(SQLDataSource.java:280)
              	at com.isomorphic.sql.SQLDataSource.executeAdd(SQLDataSource.java:232)
              	at com.isomorphic.datasource.DataSource.execute(DataSource.java:1231)
              	at com.isomorphic.application.AppBase.executeDefaultDSOperation(AppBase.java:721)
              	at com.isomorphic.application.AppBase.executeAppOperation(AppBase.java:658)
              	at com.isomorphic.application.AppBase.execute(AppBase.java:491)
              	at com.isomorphic.datasource.DSRequest.execute(DSRequest.java:1761)
              	at com.dentalvukic.crm.server.dmi.KontaktDMI.addKontaktIzUpita(KontaktDMI.java:97)
              	at sun.reflect.GeneratedMethodAccessor24.invoke(Unknown Source)
              	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
              	at java.lang.reflect.Method.invoke(Method.java:597)
              	at com.isomorphic.base.Reflection.adaptArgsAndInvoke(Reflection.java:949)
              	at com.isomorphic.datasource.DataSourceDMI.execute(DataSourceDMI.java:610)
              	at com.isomorphic.datasource.DataSourceDMI.execute(DataSourceDMI.java:64)
              	at com.isomorphic.datasource.DSRequest.execute(DSRequest.java:1758)
              	at com.isomorphic.servlet.IDACall.handleDSRequest(IDACall.java:199)
              	at com.isomorphic.servlet.IDACall.processRPCTransaction(IDACall.java:156)
              	at com.isomorphic.servlet.IDACall.processRequest(IDACall.java:121)
              	at com.isomorphic.servlet.IDACall.doPost(IDACall.java:73)
              	at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
              	at com.isomorphic.servlet.BaseServlet.service(BaseServlet.java:152)
              	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
              	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
              	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
              	at com.isomorphic.servlet.CompressionFilter.doFilter(CompressionFilter.java:259)
              	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
              	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
              	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:368)
              	at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:109)
              	at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)
              	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
              	at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:97)
              	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
              	at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:100)
              	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
              	at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54)
              	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
              	at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:35)
              	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
              	at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:187)
              	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
              	at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:79)
              	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
              	at com.dentalvukic.crm.server.common.CrmConcurrentSessionFilter.doFilter(CrmConcurrentSessionFilter.java:55)
              	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
              	at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:169)
              	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237)
              	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
              	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
              	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:127)
              	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:298)
              	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857)
              	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
              	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
              	at java.lang.Thread.run(Thread.java:619)
              Caused by: java.net.SocketException: Socket closed
              	at java.net.SocketInputStream.socketRead0(Native Method)
              	at java.net.SocketInputStream.read(SocketInputStream.java:129)
              	at org.postgresql.core.VisibleBufferedInputStream.readMore(VisibleBufferedInputStream.java:145)
              	at org.postgresql.core.VisibleBufferedInputStream.ensureBytes(VisibleBufferedInputStream.java:114)
              	at org.postgresql.core.VisibleBufferedInputStream.read(VisibleBufferedInputStream.java:73)
              	at org.postgresql.core.PGStream.ReceiveChar(PGStream.java:274)
              	at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1654)
              	at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:257)
              	... 69 more
              === 2011-10-21 12:59:20,439 [80-3] WARN  RequestContext - dsRequest.execute() failed: 
              org.postgresql.util.PSQLException: An I/O error occured while sending to the backend.
              	at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:283)
              	at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:510)
              	at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:386)
              	at org.postgresql.jdbc2.AbstractJdbc2Statement.executeUpdate(AbstractJdbc2Statement.java:332)
              	at org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:102)
              	at com.isomorphic.sql.SQLDriver.doUpdate(SQLDriver.java:471)
              	at com.isomorphic.sql.SQLDriver.update(SQLDriver.java:425)
              	at com.isomorphic.sql.SQLDriver.executeUpdate(SQLDriver.java:545)
              	at com.isomorphic.sql.SQLDataSource.executeNativeUpdate(SQLDataSource.java:388)
              	at com.isomorphic.sql.SQLDataSource.SQLExecute(SQLDataSource.java:1341)
              	at com.isomorphic.sql.SQLDataSource.processRequest(SQLDataSource.java:280)
              	at com.isomorphic.sql.SQLDataSource.executeAdd(SQLDataSource.java:232)
              	at com.isomorphic.datasource.DataSource.execute(DataSource.java:1231)
              	at com.isomorphic.application.AppBase.executeDefaultDSOperation(AppBase.java:721)
              	at com.isomorphic.application.AppBase.executeAppOperation(AppBase.java:658)
              	at com.isomorphic.application.AppBase.execute(AppBase.java:491)
              	at com.isomorphic.datasource.DSRequest.execute(DSRequest.java:1761)
              	at com.dentalvukic.crm.server.dmi.KontaktDMI.addKontaktIzUpita(KontaktDMI.java:97)
              	at sun.reflect.GeneratedMethodAccessor24.invoke(Unknown Source)
              	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
              	at java.lang.reflect.Method.invoke(Method.java:597)
              	at com.isomorphic.base.Reflection.adaptArgsAndInvoke(Reflection.java:949)
              	at com.isomorphic.datasource.DataSourceDMI.execute(DataSourceDMI.java:610)
              	at com.isomorphic.datasource.DataSourceDMI.execute(DataSourceDMI.java:64)
              	at com.isomorphic.datasource.DSRequest.execute(DSRequest.java:1758)
              	at com.isomorphic.servlet.IDACall.handleDSRequest(IDACall.java:199)
              	at com.isomorphic.servlet.IDACall.processRPCTransaction(IDACall.java:156)
              	at com.isomorphic.servlet.IDACall.processRequest(IDACall.java:121)
              	at com.isomorphic.servlet.IDACall.doPost(IDACall.java:73)
              	at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
              	at com.isomorphic.servlet.BaseServlet.service(BaseServlet.java:152)
              	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
              	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
              	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
              	at com.isomorphic.servlet.CompressionFilter.doFilter(CompressionFilter.java:259)
              	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
              	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
              	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:368)
              	at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:109)
              	at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)
              	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
              	at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:97)
              	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
              	at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:100)
              	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
              	at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54)
              	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
              	at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:35)
              	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
              	at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:187)
              	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
              	at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:79)
              	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
              	at com.dentalvukic.crm.server.common.CrmConcurrentSessionFilter.doFilter(CrmConcurrentSessionFilter.java:55)
              	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
              	at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:169)
              	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237)
              	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
              	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
              	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:127)
              	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:298)
              	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857)
              	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
              	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
              	at java.lang.Thread.run(Thread.java:619)
              Caused by: java.net.SocketException: Socket closed
              	at java.net.SocketInputStream.socketRead0(Native Method)
              	at java.net.SocketInputStream.read(SocketInputStream.java:129)
              	at org.postgresql.core.VisibleBufferedInputStream.readMore(VisibleBufferedInputStream.java:145)
              	at org.postgresql.core.VisibleBufferedInputStream.ensureBytes(VisibleBufferedInputStream.java:114)
              	at org.postgresql.core.VisibleBufferedInputStream.read(VisibleBufferedInputStream.java:73)
              	at org.postgresql.core.PGStream.ReceiveChar(PGStream.java:274)
              	at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1654)
              	at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:257)
              	... 69 more
              === 2011-10-21 12:59:20,440 [80-3] DEBUG RPCManager - Content type for RPC transaction: text/plain; charset=UTF-8
              === 2011-10-21 12:59:20,440 [80-3] WARN  RPCManager - Exception thrown during onFailure processing
              java.lang.Exception: No current connection for 'PostgreSQL'
              	at com.isomorphic.sql.SQLTransaction.rollbackTransaction(SQLTransaction.java:170)
              	at com.isomorphic.sql.SQLDataSource.onFailure(SQLDataSource.java:2275)
              	at com.isomorphic.rpc.RPCManager.onFailure(RPCManager.java:1334)
              	at com.isomorphic.rpc.RPCManager.onFailure(RPCManager.java:1234)
              	at com.isomorphic.rpc.RPCManager.completeResponse(RPCManager.java:987)
              	at com.isomorphic.rpc.RPCManager.send(RPCManager.java:582)
              	at com.isomorphic.servlet.IDACall.processRPCTransaction(IDACall.java:156)
              	at com.isomorphic.servlet.IDACall.processRequest(IDACall.java:121)
              	at com.isomorphic.servlet.IDACall.doPost(IDACall.java:73)
              	at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
              	at com.isomorphic.servlet.BaseServlet.service(BaseServlet.java:152)
              	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
              	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
              	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
              	at com.isomorphic.servlet.CompressionFilter.doFilter(CompressionFilter.java:259)
              	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
              	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
              	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:368)
              	at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:109)
              	at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)
              	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
              	at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:97)
              	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
              	at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:100)
              	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
              	at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54)
              	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
              	at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:35)
              	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
              	at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:187)
              	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
              	at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:79)
              	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
              	at com.dentalvukic.crm.server.common.CrmConcurrentSessionFilter.doFilter(CrmConcurrentSessionFilter.java:55)
              	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
              	at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:169)
              	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237)
              	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
              	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
              	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:127)
              	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:298)
              	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857)
              	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
              	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
              	at java.lang.Thread.run(Thread.java:619)
              === 2011-10-21 12:59:20,441 [80-3] DEBUG RPCManager - non-DMI response, dropExtraFields: false
              === 2011-10-21 12:59:20,442 [80-3] INFO  Compression - /crm/sc/IDACall: 171 -> 153 bytes

              Comment


                #8
                I think I am seeing the same symptoms in the 14th October (Power edition) nightly. Using Chrome for development mode.

                Yet I am using MySQL.

                I have the following DMI, for a web-app that stores Student-course-enrollment data (and things like exams). Upon enrolling a Student into a course, it has to subscribe him to lots of things like Lectures, and like Exams, this is done in 1 DMI.

                The code and stacktrace are shown below. Actually pretty basic stuff is happening, just making sure some extra rows are inserted in different tables.

                The weird thing is that it happens like 30% of the time, at pretty random points in the code.

                Code:
                package nl.sytematic.projects.Technicom.server.custom.dmi;
                
                import java.util.ArrayList;
                import java.util.HashMap;
                import java.util.List;
                import java.util.Map;
                
                import com.isomorphic.datasource.DSRequest;
                import com.isomorphic.datasource.DSResponse;
                import com.isomorphic.js.JSONFilter;
                
                
                public class CustomCourseEdition_students_StudentDMI {
                	
                	public DSResponse add(DSRequest req) throws Exception {
                	    //if specified record's CourseEdition_id has lmsAccess==true 
                		//     AND
                		//if user already has an account in the 'users' table ---> add moodle enrollment
                		// (else just enroll in OUR system, but not in moodle)
                		
                		
                		//get if lmsAcc = true and get the max number of participants
                		DSRequest getLms = new DSRequest("CourseEdition", "fetch");
                		getLms.setOperationId("managersCourseFetchPublic");
                		getLms.setRPCManager(req.getRPCManager());
                		getLms.setCriteria("CourseEdition_id",req.getFieldValue("CourseEdition_id"));
                		DSResponse resp = getLms.execute();
                		List data = resp.getDataList();
                		boolean lmsAccess=false;
                		int moodleCourseId=0;
                		int maxParticipants = 0;
                		long numParticipants = 0;
                		String courseName = "";
                		String cedName = "";
                		for( Object o : data){
                			Map rec = (Map) o;
                			if(rec.get("lmsAccess") == null)
                				lmsAccess = false;
                			else
                				lmsAccess = (Boolean) rec.get("lmsAccess");
                			
                			if(rec.get("MoodleCourse_id") != null)
                				moodleCourseId = (Integer) rec.get("MoodleCourse_id");
                			
                			if(rec.get("maximumParticipants") != null)
                				maxParticipants = (Integer) rec.get("maximumParticipants");
                
                			if(rec.get("numParticipants") != null)
                				numParticipants = (Long) rec.get("numParticipants");
                			
                			if(rec.get("courseName") != null)
                				courseName=(String) rec.get("courseName");
                			
                			if(rec.get("editionName") != null)
                				cedName = (String) rec.get("editionName");
                			
                			break;
                		}
                		
                		//put ppl on waiting list if it exceeds the max number of subscriptions
                		if(numParticipants >= maxParticipants) {
                			req.setFieldValue("waitinglist", true);
                		}
                		else {
                			req.setFieldValue("waitinglist", false);			
                		}
                		
                		
                		
                		//see if user already has login credentials
                		DSRequest isUser = new DSRequest("users","fetch");
                		isUser.setRPCManager(req.getRPCManager());
                		isUser.setCriteria("Student_id", req.getFieldValue("Student_id"));
                		
                		DSResponse users = isUser.execute();
                		
                		List data2 = users.getDataList();
                		int hasCredentials = 0;
                		for(Object o : data2){
                			hasCredentials++;
                		}
                		
                		if(lmsAccess && hasCredentials > 0){
                			DSRequest student = new DSRequest("Student", "fetch");
                			student.setRPCManager(req.getRPCManager());
                			student.setCriteria("Student_id", req.getFieldValue("Student_id"));
                			DSResponse stud = student.execute();
                			List data3 = stud.getDataList();
                			int moodleStudentId = 0;
                			for(Object o : data3){
                				Map rec = (Map) o;
                				Object id = rec.get("Moodle_id");
                				moodleStudentId = (id != null) ? (Integer) id : 0;
                			}
                			
                			if(moodleCourseId>0) {
                				DSRequest enroll = new DSRequest("CustomMoodleCreateEnrolment", "add");
                				enroll.setPartOfTransaction(false);
                				enroll.setFieldValue("userid", moodleStudentId);
                				enroll.setFieldValue("role", "Student");
                				enroll.setFieldValue("courseid", moodleCourseId);
                				enroll.execute();
                			}
                			else {
                				System.out.println("Warning, course does not exist in moodle, don't know where to enroll in, ignoring!");				
                			}
                		}
                
                		//this is used for populating the mail, if there is a <mail> tag specified in the operationBinding.
                		//this way we have declarative mail templates.
                		Map mailData= new HashMap();
                		mailData.put("courseName",courseName);
                		mailData.put("courseEditionName", cedName);
                		mailData.put("firstname", (String) req.getFieldValue("firstname"));
                		mailData.put("tussenvoegsel", (String) req.getFieldValue("tussenvoegsel"));
                		mailData.put("surname", (String) req.getFieldValue("surname"));
                		mailData.put("email", (String) req.getFieldValue("email"));
                		req.getServletContext().setAttribute("mailData",mailData);
                		
                		
                		//else just enroll in our system
                		DSResponse enroll =  req.execute();
                		
                		//get all lectures belonging to this courseediton
                		DSRequest getLectures = new DSRequest("Lecture", "fetch");
                		getLectures.setOperationId("publicSubscriptionLookup");
                	
                		getLectures.setRPCManager(req.getRPCManager());
                		getLectures.setCriteria("CourseEdition_id",req.getFieldValue("CourseEdition_id"));
                		DSResponse r = getLectures.execute();
                		List data4 = r.getDataList();
                		System.out.println("Inserting presence rows upon subscription... ");
                		DSRequest insertPresence = new DSRequest("Lecture_presence_Student", "add");
                		insertPresence.setRPCManager(req.getRPCManager());
                		insertPresence.setOperationId("publicLecturePresence");
                
                		List<Map<String,Object>> insertData = new ArrayList<Map<String,Object>>();
                		for(Object o : data4){
                			Map lec = (Map) o;
                			Map<String,Object> record = new HashMap<String,Object>();
                			
                			Object lecId = lec.get("Lecture_id");
                			int id = (lecId != null) ? (Integer) lecId : 0;
                			
                			record.put("Student_id",req.getFieldValue("Student_id"));
                			record.put("Lecture_id", id);
                			record.put("status", "onverwerkt");
                			insertData.add(record);
                		}
                		insertPresence.setValues(insertData);
                		insertPresence.execute();
                
                		
                		//get all exams belonging to this courseedition, and insert a row in each of them for this student.
                		DSRequest getExams = new DSRequest("Exam", "fetch");
                		getExams.setOperationId("fetchFromPublicSubscription");
                	
                		getExams.setRPCManager(req.getRPCManager());
                		getExams.setCriteria("CourseEdition_id",req.getFieldValue("CourseEdition_id"));
                		DSResponse r2 = getExams.execute();
                		List data5 = r2.getDataList();
                		
                		List<Map<String,Object>> insertData2 = new ArrayList<Map<String,Object>>();
                		
                		DSRequest insertEx = new DSRequest("Exam_participants_Student", "add");
                		insertEx.setRPCManager(req.getRPCManager());
                		insertEx.setOperationId("publicInsertInExam");
                		System.out.println("Inserting exam rows upon subscription... ");
                		for(Object o : data5){
                			Map ex = (Map) o;
                			Object exId = ex.get("Exam_id");
                			Map<String,Object> record = new HashMap<String,Object>();
                
                			int id = (exId != null) ? (Integer) exId : 0;
                			
                			record.put("Student_id",req.getFieldValue("Student_id"));
                			record.put("Exam_id", id);
                			insertData2.add(record);
                		}		
                		insertEx.setValues(insertData2);
                		insertEx.execute();
                
                		return enroll;
                	}
                	
                	
                	public DSResponse remove(DSRequest req) throws Exception {
                		//fetch all lecture_presence_rows of this 
                		DSRequest presence = new DSRequest("Lecture_presence_Student", "fetch");
                		presence.setOperationId("AlsoJoinOnCourseEdition");
                		presence.setRPCManager(req.getRPCManager());
                		presence.setCriteria("students_id", req.getFieldValue("students_id"));
                		DSResponse resp = presence.execute();
                		//List data = resp.getDataList();
                		Object d=resp.getData();
                		JSONFilter j = (JSONFilter) d;
                		List data = (List) j.getObj();
                		//remove all the presence rows of this user.
                		for(Object o : data){
                			Map rec = (Map) o;
                			DSRequest presenceRem = new DSRequest("Lecture_presence_Student", "remove");
                			presenceRem.setRPCManager(req.getRPCManager());
                			presenceRem.setFieldValue("presence_id", rec.get("presence_id"));
                			presenceRem.execute();
                		}
                
                		//fetch all Exam_participants_Student rows of this 
                		DSRequest participants = new DSRequest("Exam_participants_Student", "fetch");
                		participants.setOperationId("AlsoJoinOnCourseEdition");
                		participants.setRPCManager(req.getRPCManager());
                		participants.setCriteria("students_id", req.getFieldValue("students_id"));
                		DSResponse resp2 = participants.execute();
                		//List data = resp.getDataList();
                		Object d2=resp2.getData();
                		JSONFilter j2 = (JSONFilter) d2;
                		List data2 = (List) j2.getObj();		
                		
                		for(Object o : data2){
                			Map rec = (Map) o;
                			DSRequest partRem = new DSRequest("Exam_participants_Student", "remove");
                			partRem.setRPCManager(req.getRPCManager());
                			partRem.setFieldValue("participants_id", rec.get("participants_id"));
                			partRem.execute();
                		}
                		
                		return req.execute();
                	}
                }
                Stacktrace (it's long):
                Code:
                === 2011-10-21 14:48:56,788 [0-22] DEBUG SQLValuesClause - [builtinApplication.publicLecturePresence] Sequences: {presence_id=__default}
                === 2011-10-21 14:48:56,789 [0-22] INFO  SQLDriver - [builtinApplication.publicLecturePresence] Executing SQL update on 'Mysql': INSERT INTO Lecture_presence_Student (Lecture_id, Student_id, status) VALUES (2, 25, 'onverwerkt')
                === 2011-10-21 14:48:56,790 [0-22] DEBUG SQLDataSource - [builtinApplication.publicLecturePresence] add operation affected 1 rows
                === 2011-10-21 14:48:56,790 [0-22] DEBUG MysqlDriver - [builtinApplication.publicLecturePresence] fetchLastRow data - primaryKeysPresent: {}sequencesNotPresent: [presence_id]
                === 2011-10-21 14:48:56,791 [0-22] INFO  SQLDriver - [builtinApplication.publicLecturePresence] Executing SQL query on 'Mysql': SELECT LAST_INSERT_ID()
                === 2011-10-21 14:48:56,791 [0-22] INFO  SQLDataSource - [builtinApplication.publicLecturePresence] primaryKeys: {presence_id=110}
                === 2011-10-21 14:48:56,791 [0-22] INFO  SQLDataSource - [builtinApplication.publicLecturePresence] Mysql getLastRow(): using specific cacheSyncOperation pubfetch
                === 2011-10-21 14:48:56,792 [0-22] DEBUG AppBase - [builtinApplication.publicLecturePresence, builtinApplication.pubfetch] No userTypes defined, allowing anyone access to all operations for this application
                === 2011-10-21 14:48:56,793 [0-22] DEBUG AppBase - [builtinApplication.publicLecturePresence, builtinApplication.pubfetch] No public zero-argument method named '_pubfetch' found, performing generic datasource operation
                === 2011-10-21 14:48:56,793 [0-22] INFO  SQLDataSource - [builtinApplication.publicLecturePresence, builtinApplication.pubfetch] Performing fetch operation with
                	criteria: {presence_id:110}	values: {presence_id:110}
                === 2011-10-21 14:48:56,802 [izer] DEBUG SQLTransaction - Ending Mysql transaction "1543929657"
                === 2011-10-21 14:48:56,804 [0-22] INFO  SQLDataSource - [builtinApplication.publicLecturePresence, builtinApplication.pubfetch] derived query: SELECT $defaultSelectClause FROM $defaultTableClause WHERE $defaultWhereClause
                === 2011-10-21 14:48:56,837 [0-22] INFO  SQLDriver - [builtinApplication.publicLecturePresence, builtinApplication.pubfetch] Executing SQL query on 'Mysql': SELECT Lecture_presence_Student.reason, Lecture_presence_Student.Student_id, Lecture_presence_Student.Lecture_id, Lecture_presence_Student.presence_id, Lecture_presence_Student.status FROM Lecture_presence_Student WHERE (Lecture_presence_Student.presence_id='110')
                === 2011-10-21 14:48:56,838 [0-22] DEBUG DataSourceDMI - Invocation threw exception
                java.sql.SQLException: Connection com.mysql.jdbc.JDBC4Connection@5c067f39 is closed.
                	at org.apache.commons.dbcp.DelegatingConnection.checkOpen(DelegatingConnection.java:354)
                	at org.apache.commons.dbcp.DelegatingConnection.createStatement(DelegatingConnection.java:222)
                	at com.isomorphic.sql.SQLDriver.createFetchStatement(SQLDriver.java:966)
                	at com.isomorphic.sql.SQLDriver.getTransformedResults(SQLDriver.java:319)
                	at com.isomorphic.sql.SQLDriver.executeQuery(SQLDriver.java:562)
                	at com.isomorphic.sql.SQLDataSource.executeNativeQuery(SQLDataSource.java:376)
                	at com.isomorphic.sql.SQLDataSource.executeNativeQuery(SQLDataSource.java:371)
                	at com.isomorphic.sql.SQLDataSource.SQLExecute(SQLDataSource.java:1289)
                	at com.isomorphic.sql.SQLDataSource.processRequest(SQLDataSource.java:280)
                	at com.isomorphic.sql.SQLDataSource.executeFetch(SQLDataSource.java:224)
                	at com.isomorphic.datasource.DataSource.execute(DataSource.java:1154)
                	at com.isomorphic.application.AppBase.executeDefaultDSOperation(AppBase.java:721)
                	at com.isomorphic.application.AppBase.executeAppOperation(AppBase.java:658)
                	at com.isomorphic.application.AppBase.execute(AppBase.java:491)
                	at com.isomorphic.datasource.DSRequest.execute(DSRequest.java:1756)
                	at com.isomorphic.sql.SQLDataSource.getLastRow(SQLDataSource.java:492)
                	at com.isomorphic.sql.SQLDataSource.SQLExecute(SQLDataSource.java:1381)
                	at com.isomorphic.sql.SQLDataSource.executeMultipleInsert(SQLDataSource.java:1412)
                	at com.isomorphic.sql.SQLDataSource.SQLExecute(SQLDataSource.java:1090)
                	at com.isomorphic.sql.SQLDataSource.processRequest(SQLDataSource.java:280)
                	at com.isomorphic.sql.SQLDataSource.executeAdd(SQLDataSource.java:232)
                	at com.isomorphic.datasource.DataSource.execute(DataSource.java:1156)
                	at com.isomorphic.application.AppBase.executeDefaultDSOperation(AppBase.java:721)
                	at com.isomorphic.application.AppBase.executeAppOperation(AppBase.java:658)
                	at com.isomorphic.application.AppBase.execute(AppBase.java:491)
                	at com.isomorphic.datasource.DSRequest.execute(DSRequest.java:1756)
                	at nl.sytematic.projects.Technicom.server.custom.dmi.CustomCourseEdition_students_StudentDMI.add(CustomCourseEdition_students_StudentDMI.java:151)
                	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
                	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
                	at java.lang.reflect.Method.invoke(Method.java:597)
                	at com.isomorphic.base.Reflection.adaptArgsAndInvoke(Reflection.java:949)
                	at com.isomorphic.datasource.DataSourceDMI.execute(DataSourceDMI.java:610)
                	at com.isomorphic.datasource.DataSourceDMI.execute(DataSourceDMI.java:64)
                	at com.isomorphic.datasource.DSRequest.execute(DSRequest.java:1753)
                	at com.isomorphic.servlet.IDACall.handleDSRequest(IDACall.java:199)
                	at nl.sytematic.projects.Technicom.server.security.SecureIDACall.processRequest(SecureIDACall.java:125)
                	at com.isomorphic.servlet.IDACall.doPost(IDACall.java:73)
                	at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
                	at com.isomorphic.servlet.BaseServlet.service(BaseServlet.java:152)
                	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
                	at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
                	at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1097)
                	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:343)
                	at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:109)
                	at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)
                	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
                	at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:97)
                	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
                	at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:100)
                	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
                	at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:78)
                	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
                	at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54)
                	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
                	at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:35)
                	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
                	at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:187)
                	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
                	at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:187)
                	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
                	at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105)
                	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
                	at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:79)
                	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
                	at nl.sytematic.projects.Technicom.server.security.SytematicConcurrentSessionFilter.doFilter(SytematicConcurrentSessionFilter.java:62)
                	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
                	at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:149)
                	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237)
                	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
                	at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1088)
                	at com.isomorphic.servlet.CompressionFilter.doFilter(CompressionFilter.java:259)
                	at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1088)
                	at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)
                	at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
                	at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
                	at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:729)
                	at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
                	at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
                	at org.mortbay.jetty.handler.RequestLogHandler.handle(RequestLogHandler.java:49)
                	at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
                	at org.mortbay.jetty.Server.handle(Server.java:324)
                	at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505)
                	at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:843)
                	at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:647)
                	at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
                	at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380)
                	at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395)
                	at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:488)
                === 2011-10-21 14:48:56,840 [0-22] WARN  RequestContext - dsRequest.execute() failed: 
                java.sql.SQLException: Connection com.mysql.jdbc.JDBC4Connection@5c067f39 is closed.
                	at org.apache.commons.dbcp.DelegatingConnection.checkOpen(DelegatingConnection.java:354)
                	at org.apache.commons.dbcp.DelegatingConnection.createStatement(DelegatingConnection.java:222)
                	at com.isomorphic.sql.SQLDriver.createFetchStatement(SQLDriver.java:966)
                	at com.isomorphic.sql.SQLDriver.getTransformedResults(SQLDriver.java:319)
                	at com.isomorphic.sql.SQLDriver.executeQuery(SQLDriver.java:562)
                	at com.isomorphic.sql.SQLDataSource.executeNativeQuery(SQLDataSource.java:376)
                	at com.isomorphic.sql.SQLDataSource.executeNativeQuery(SQLDataSource.java:371)
                	at com.isomorphic.sql.SQLDataSource.SQLExecute(SQLDataSource.java:1289)
                	at com.isomorphic.sql.SQLDataSource.processRequest(SQLDataSource.java:280)
                	at com.isomorphic.sql.SQLDataSource.executeFetch(SQLDataSource.java:224)
                	at com.isomorphic.datasource.DataSource.execute(DataSource.java:1154)
                	at com.isomorphic.application.AppBase.executeDefaultDSOperation(AppBase.java:721)
                	at com.isomorphic.application.AppBase.executeAppOperation(AppBase.java:658)
                	at com.isomorphic.application.AppBase.execute(AppBase.java:491)
                	at com.isomorphic.datasource.DSRequest.execute(DSRequest.java:1756)
                	at com.isomorphic.sql.SQLDataSource.getLastRow(SQLDataSource.java:492)
                	at com.isomorphic.sql.SQLDataSource.SQLExecute(SQLDataSource.java:1381)
                	at com.isomorphic.sql.SQLDataSource.executeMultipleInsert(SQLDataSource.java:1412)
                	at com.isomorphic.sql.SQLDataSource.SQLExecute(SQLDataSource.java:1090)
                	at com.isomorphic.sql.SQLDataSource.processRequest(SQLDataSource.java:280)
                	at com.isomorphic.sql.SQLDataSource.executeAdd(SQLDataSource.java:232)
                	at com.isomorphic.datasource.DataSource.execute(DataSource.java:1156)
                	at com.isomorphic.application.AppBase.executeDefaultDSOperation(AppBase.java:721)
                	at com.isomorphic.application.AppBase.executeAppOperation(AppBase.java:658)
                	at com.isomorphic.application.AppBase.execute(AppBase.java:491)
                	at com.isomorphic.datasource.DSRequest.execute(DSRequest.java:1756)
                	at nl.sytematic.projects.Technicom.server.custom.dmi.CustomCourseEdition_students_StudentDMI.add(CustomCourseEdition_students_StudentDMI.java:151)
                	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
                	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
                	at java.lang.reflect.Method.invoke(Method.java:597)
                	at com.isomorphic.base.Reflection.adaptArgsAndInvoke(Reflection.java:949)
                	at com.isomorphic.datasource.DataSourceDMI.execute(DataSourceDMI.java:610)
                	at com.isomorphic.datasource.DataSourceDMI.execute(DataSourceDMI.java:64)
                	at com.isomorphic.datasource.DSRequest.execute(DSRequest.java:1753)
                	at com.isomorphic.servlet.IDACall.handleDSRequest(IDACall.java:199)
                	at nl.sytematic.projects.Technicom.server.security.SecureIDACall.processRequest(SecureIDACall.java:125)
                	at com.isomorphic.servlet.IDACall.doPost(IDACall.java:73)
                	at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
                	at com.isomorphic.servlet.BaseServlet.service(BaseServlet.java:152)
                	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
                	at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
                	at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1097)
                	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:343)
                	at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:109)
                	at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)
                	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
                	at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:97)
                	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
                	at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:100)
                	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
                	at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:78)
                	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
                	at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54)
                	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
                	at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:35)
                	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
                	at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:187)
                	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
                	at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:187)
                	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
                	at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105)
                	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
                	at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:79)
                	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
                	at nl.sytematic.projects.Technicom.server.security.SytematicConcurrentSessionFilter.doFilter(SytematicConcurrentSessionFilter.java:62)
                	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
                	at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:149)
                	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237)
                	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
                	at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1088)
                	at com.isomorphic.servlet.CompressionFilter.doFilter(CompressionFilter.java:259)
                	at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1088)
                	at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)
                	at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
                	at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
                	at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:729)
                	at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
                	at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
                	at org.mortbay.jetty.handler.RequestLogHandler.handle(RequestLogHandler.java:49)
                	at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
                	at org.mortbay.jetty.Server.handle(Server.java:324)
                	at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505)
                	at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:843)
                	at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:647)
                	at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
                	at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380)
                	at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395)
                	at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:488)
                === 2011-10-21 14:48:56,843 [0-22] DEBUG RPCManager - Content type for RPC transaction: text/plain; charset=UTF-8
                === 2011-10-21 14:48:56,844 [0-22] WARN  RPCManager - Exception thrown during onFailure processing
                java.lang.Exception: No current connection for 'Mysql'
                	at com.isomorphic.sql.SQLTransaction.rollbackTransaction(SQLTransaction.java:170)
                	at com.isomorphic.sql.SQLDataSource.onFailure(SQLDataSource.java:2275)
                	at com.isomorphic.rpc.RPCManager.onFailure(RPCManager.java:1334)
                	at com.isomorphic.rpc.RPCManager.onFailure(RPCManager.java:1234)
                	at com.isomorphic.rpc.RPCManager.completeResponse(RPCManager.java:987)
                	at com.isomorphic.rpc.RPCManager.send(RPCManager.java:582)
                	at nl.sytematic.projects.Technicom.server.security.SecureIDACall.processRequest(SecureIDACall.java:132)
                	at com.isomorphic.servlet.IDACall.doPost(IDACall.java:73)
                	at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
                	at com.isomorphic.servlet.BaseServlet.service(BaseServlet.java:152)
                	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
                	at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
                	at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1097)
                	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:343)
                	at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:109)
                	at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)
                	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
                	at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:97)
                	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
                	at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:100)
                	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
                	at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:78)
                	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
                	at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54)
                	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
                	at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:35)
                	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
                	at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:187)
                	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
                	at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:187)
                	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
                	at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105)
                	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
                	at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:79)
                	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
                	at nl.sytematic.projects.Technicom.server.security.SytematicConcurrentSessionFilter.doFilter(SytematicConcurrentSessionFilter.java:62)
                	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
                	at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:149)
                	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237)
                	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
                	at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1088)
                	at com.isomorphic.servlet.CompressionFilter.doFilter(CompressionFilter.java:259)
                	at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1088)
                	at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)
                	at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
                	at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
                	at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:729)
                	at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
                	at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
                	at org.mortbay.jetty.handler.RequestLogHandler.handle(RequestLogHandler.java:49)
                	at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
                	at org.mortbay.jetty.Server.handle(Server.java:324)
                	at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505)
                	at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:843)
                	at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:647)
                	at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
                	at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380)
                	at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395)
                	at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:488)
                === 2011-10-21 14:48:56,846 [0-22] DEBUG RPCManager - DMI response, dropExtraFields: true
                === 2011-10-21 14:48:56,847 [0-22] DEBUG RPCManager - DMI response, dropExtraFields: true
                === 2011-10-21 14:48:56,847 [0-22] DEBUG RPCManager - non-DMI response, dropExtraFields: false
                === 2011-10-21 14:48:56,855 [0-22] INFO  Compression - /generatedcode/sc/IDACall: 1344 -> 455 bytes

                Comment


                  #9
                  I have detected that in this case a bug happened in another DMI class, not the one I specified above, but as a rule, it happens in several DMI classes.

                  Originally posted by lado
                  Hi!

                  I upgraded to SmarGWT 2.5 build 2011-20-21, and very, very carefully deployed the application from scratch, and I got the same bug, several times during 10 minutes of testing with seven of my end-users simultaneously, though the one that is in the stacktrace happened with just one active user.

                  In the meantime, I downgraded PostgreSQL from 9.0.x to 8.4.x, and the JDBC driver respectively.

                  Here is my stacktrace, stripped from confidential information.

                  Code:
                  === 2011-10-21 12:59:20,311 [80-3] INFO  RequestContext - URL: '/crm/sc/IDACall', User-Agent: 'Mozilla/5.0 (Windows NT 6.1; rv:5.0) Gecko/20100101 Firefox/5.0': Moz (Gecko) with Accept-Encoding header
                  === 2011-10-21 12:59:20,313 [80-3] DEBUG XML - Parsed XML from (in memory stream): 1ms
                  === 2011-10-21 12:59:20,317 [80-3] DEBUG RPCManager - Processing 1 requests.
                  === 2011-10-21 12:59:20,317 [80-3] DEBUG RPCManager - Request #1 (DSRequest) payload: {
                      values:{
                          kreirao_id:2,
                          ime:"<UNDISCLOSED>",
                          prezime:"<UNDISCLOSED>",
                          email1:"<UNDISCLOSED>",
                          godina_rodjenja:1986,
                          adresa:"<UNDISCLOSED>",
                          dnevnik_poruka:"<UNDISCLOSED>",
                          jezik_id:73,
                          drzava_id:82,
                          mobitel:"<UNDISCLOSED>",
                          trziste_jezik_id:3,
                          spol:"Z",
                          upit_id:18
                      },
                      operationConfig:{
                          dataSource:"kontaktDS",
                          operationType:"add"
                      },
                      componentId:"isc_KontaktAddIzUpitaDynamicForm_0",
                      appID:"builtinApplication",
                      operation:"add_kontakt_iz_upita",
                      oldValues:{
                      },
                      criteria:{
                      }
                  }
                  === 2011-10-21 12:59:20,318 [80-3] INFO  IDACall - Performing 1 operation(s)
                  === 2011-10-21 12:59:20,319 [80-3] INFO  KontaktDMI - KontaktDMI.addKontaktIzUpita
                  === 2011-10-21 12:59:20,319 [80-3] DEBUG AppBase - [builtinApplication.add_kontakt_iz_upita] No userTypes defined, allowing anyone access to all operations for this application
                  === 2011-10-21 12:59:20,319 [80-3] DEBUG AppBase - [builtinApplication.add_kontakt_iz_upita] No public zero-argument method named '_add_kontakt_iz_upita' found, performing generic datasource operation
                  === 2011-10-21 12:59:20,320 [80-3] INFO  SQLDataSource - [builtinApplication.add_kontakt_iz_upita] Performing add operation with
                  	criteria: {kreirao_id:2,ime:"<UNDISCLOSED>",prezime:"<UNDISCLOSED>",email1:"<UNDISCLOSED>",godina_rodjenja:1986,adresa:"<UNDISCLOSED>",dnevnik_poruka:"<UNDISCLOSED>",jezik_id:73,drzava_id:82,mobitel:"<UNDISCLOSED>",trziste_jezik_id:3,spol:"Z",upit_id:18}	values: {kreirao_id:2,ime:"<UNDISCLOSED>",prezime:"<UNDISCLOSED>",email1:"<UNDISCLOSED>",godina_rodjenja:1986,adresa:"<UNDISCLOSED>",dnevnik_poruka:"<UNDISCLOSED>",jezik_id:73,drzava_id:82,mobitel:"<UNDISCLOSED>",trziste_jezik_id:3,spol:"Z",upit_id:18,vrijeme_kreiranja:new Date(1319194760319),promijenio_id:2,status_kontakt_id:101,sljedeca_aktivnost_kontakt_id:2,vrijeme_sljedece_aktivnosti_od:new Date(1319176800000),vrijeme_sljedece_aktivnosti_do:new Date(1319220000000)}
                  === 2011-10-21 12:59:20,320 [80-3] INFO  SQLValuesClause - [builtinApplication.add_kontakt_iz_upita] Ignored data for non-existent columns: [dnevnik_poruka, upit_id]
                  === 2011-10-21 12:59:20,320 [80-3] DEBUG SQLValuesClause - [builtinApplication.add_kontakt_iz_upita] Sequences: {kontakt_id=kontakt_kontakt_id_seq}
                  === 2011-10-21 12:59:20,321 [80-3] DEBUG PoolableSQLConnectionFactory - [builtinApplication.add_kontakt_iz_upita] DriverManager fetching connection for PostgreSQL via jdbc url jdbc:postgresql://localhost:5432/crm_db_test
                  === 2011-10-21 12:59:20,321 [80-3] DEBUG PoolableSQLConnectionFactory - [builtinApplication.add_kontakt_iz_upita] Passing credentials getConnection separately from JDBC URL
                  === 2011-10-21 12:59:20,325 [80-3] DEBUG PoolableSQLConnectionFactory - [builtinApplication.add_kontakt_iz_upita] Returning pooled Connection
                  === 2011-10-21 12:59:20,326 [80-3] DEBUG SQLTransaction - [builtinApplication.add_kontakt_iz_upita] Started new PostgreSQL transaction "22006934"
                  === 2011-10-21 12:59:20,326 [80-3] INFO  SQLDriver - [builtinApplication.add_kontakt_iz_upita] Executing SQL update on 'PostgreSQL': INSERT INTO kontakt (adresa, drzava_id, email1, godina_rodjenja, ime, jezik_id, kreirao_id, mobitel, prezime, promijenio_id, sljedeca_aktivnost_kontakt_id, spol, status_kontakt_id, trziste_jezik_id, vrijeme_kreiranja, vrijeme_sljedece_aktivnosti_do, vrijeme_sljedece_aktivnosti_od, kontakt_id) VALUES ('<UNDISCLOSED>', 82, '<UNDISCLOSED>', 1986, '<UNDISCLOSED>', 73, 2, '<UNDISCLOSED>', '<UNDISCLOSED>', 2, 2, 'Z', 101, 3, '2011-10-21 12:59:20', '2011-10-21 20:00:00', '2011-10-21 08:00:00', nextval('kontakt_kontakt_id_seq'))
                  === 2011-10-21 12:59:20,334 [80-3] DEBUG SQLDataSource - [builtinApplication.add_kontakt_iz_upita] add operation affected 1 rows
                  === 2011-10-21 12:59:20,334 [80-3] INFO  SQLDriver - [builtinApplication.add_kontakt_iz_upita] Executing SQL query on 'PostgreSQL': SELECT currval('kontakt_kontakt_id_seq')
                  === 2011-10-21 12:59:20,335 [80-3] INFO  SQLDataSource - [builtinApplication.add_kontakt_iz_upita] primaryKeys: {kontakt_id=17}
                  === 2011-10-21 12:59:20,335 [80-3] INFO  SQLDataSource - [builtinApplication.add_kontakt_iz_upita] PostgreSQL getLastRow(): using default operationBinding
                  === 2011-10-21 12:59:20,336 [80-3] DEBUG AppBase - [builtinApplication.add_kontakt_iz_upita, builtinApplication.null] No userTypes defined, allowing anyone access to all operations for this application
                  === 2011-10-21 12:59:20,336 [80-3] DEBUG AppBase - [builtinApplication.add_kontakt_iz_upita, builtinApplication.null] No public zero-argument method named '_null' found, performing generic datasource operation
                  === 2011-10-21 12:59:20,336 [80-3] INFO  SQLDataSource - [builtinApplication.add_kontakt_iz_upita, builtinApplication.null] Performing fetch operation with
                  	criteria: {kontakt_id:17}	values: {kontakt_id:17}
                  === 2011-10-21 12:59:20,337 [80-3] INFO  SQLDataSource - [builtinApplication.add_kontakt_iz_upita, builtinApplication.null] derived query: SELECT 
                  				$defaultSelectClause
                  				, concat_with_comma(format_phone_number(d.tel_predbroj, kontakt.fiksni_telefon), format_phone_number(d.tel_predbroj, kontakt.mobitel), format_phone_number(d.tel_predbroj, kontakt.telefon3)) AS svi_telefoni
                  				, concat_with_comma(kontakt.email1, kontakt.email2, NULL) AS svi_emailovi
                  				, d.hr_naziv AS drzava_hr_naziv
                  				, concat_with_comma(kontakt.adresa, d.iso_kod2, NULL) AS adresa_za_prikaz
                  				, j.iso_kod2 || ' (' || j.hr_naziv || ')' AS jezik_naziv_kratica
                  				, t.naziv || ' - ' || tjj.hr_naziv AS trziste_jezik_naziv_za_prikaz
                  				, o.ime_naziv AS obradjuje_ime_naziv
                  				, NULL AS obradjuje_indikator
                  				, k.ime_naziv AS kreirao_ime_naziv
                  				, p.ime_naziv AS promijenio_ime_naziv
                  				, a.ime_naziv AS agent_ime_naziv
                  				, pa.kratica AS provizija_agenta_kratica
                  				, CASE WHEN pr.ime IS NOT NULL THEN pr.ime || ' ' || pr.prezime ELSE NULL END AS preporucio_ime_prezime
                  				, sk.naziv AS status_naziv
                  				, ak.naziv_buducnost AS sljedeca_aktivnost_naziv
                  				, ak.prioritet AS sljedeca_aktivnost_prioritet
                  				, h.naziv AS hitnost_naziv
                  				, (SELECT izvor_id FROM upit WHERE upit_id = (SELECT MIN(upit_id) FROM upit u WHERE u.kontakt_id = kontakt.kontakt_id)) AS upit_izvor_id
                  				, po.posjet_id AS posjet_id
                  				, po.datum_dolaska AS posjet_datum_dolaska
                  			 FROM 
                  				kontakt 
                  					JOIN v_korisnik k ON k.korisnik_id = kontakt.kreirao_id
                  					JOIN v_korisnik p ON p.korisnik_id = kontakt.promijenio_id
                  					JOIN status_kontakt sk USING (status_kontakt_id)
                  					JOIN aktivnost_kontakt ak ON ak.aktivnost_kontakt_id = kontakt.sljedeca_aktivnost_kontakt_id
                  					JOIN hitnost h USING (hitnost_id)
                  					LEFT JOIN v_korisnik o ON o.korisnik_id = kontakt.obradjuje_id
                  					LEFT JOIN drzava d USING (drzava_id)
                  					LEFT JOIN jezik j USING (jezik_id) 
                  					LEFT JOIN trziste_jezik tj USING (trziste_jezik_id) LEFT JOIN jezik tjj ON tj.jezik_id = tjj.jezik_id LEFT JOIN trziste t USING (trziste_id)  
                  					LEFT JOIN v_agent a USING (agent_id)
                  					LEFT JOIN provizija_agenta pa USING (provizija_agenta_id)
                  					LEFT JOIN kontakt pr ON pr.kontakt_id = kontakt.preporucio_id
                  					LEFT JOIN posjet po ON po.kontakt_id = kontakt.kontakt_id AND po.aktualno = 't'
                  			 WHERE $defaultWhereClause
                  === 2011-10-21 12:59:20,338 [80-3] INFO  SQLDriver - [builtinApplication.add_kontakt_iz_upita, builtinApplication.null] Executing SQL query on 'PostgreSQL': SELECT 
                  				kontakt.prezime, kontakt.provizija_agenta_id, kontakt.gc_route, kontakt.vrijeme_sljedece_aktivnosti_od, kontakt.obradjuje_id, kontakt.ime, kontakt.gc_adm_area1_long, kontakt.gc_adm_area1_short, kontakt.gc_country_long, kontakt.kontakt_id, kontakt.drzava_id, kontakt.telefon3, kontakt.adresa, kontakt.agent_id, CASE WHEN kontakt.vrijeme_sljedece_aktivnosti_od IS NOT NULL THEN to_char(kontakt.vrijeme_sljedece_aktivnosti_od, 'DD.MM.YYYY HH24:MI') || ' - ' || to_char(kontakt.vrijeme_sljedece_aktivnosti_do, 'HH24:MI') ELSE NULL END AS vrijeme_od_do, kontakt.trziste_jezik_id, kontakt.napomena, kontakt.kreirao_id, kontakt.gc_locality, kontakt.gc_location_lon, kontakt.gc_adm_area2_long, kontakt.sljedeca_aktivnost_kontakt_id, kontakt.status_kontakt_id, kontakt.datum_rodjenja, kontakt.fiksni_telefon, kontakt.gc_country_short, kontakt.gc_location_lat, kontakt.promijenio_id, kontakt.gc_street_address, kontakt.vrijeme_kreiranja, kontakt.jezik_id, kontakt.ime || ' ' || kontakt.prezime AS ime_prezime, kontakt.vrijeme_sljedece_aktivnosti_do, kontakt.vrijeme_promjene, kontakt.gc_postal_code, kontakt.preporucio_id, kontakt.spol, kontakt.email1, kontakt.email2, kontakt.godina_rodjenja, kontakt.gc_sublocality, kontakt.mobitel, kontakt.gc_adm_area2_short
                  				, concat_with_comma(format_phone_number(d.tel_predbroj, kontakt.fiksni_telefon), format_phone_number(d.tel_predbroj, kontakt.mobitel), format_phone_number(d.tel_predbroj, kontakt.telefon3)) AS svi_telefoni
                  				, concat_with_comma(kontakt.email1, kontakt.email2, NULL) AS svi_emailovi
                  				, d.hr_naziv AS drzava_hr_naziv
                  				, concat_with_comma(kontakt.adresa, d.iso_kod2, NULL) AS adresa_za_prikaz
                  				, j.iso_kod2 || ' (' || j.hr_naziv || ')' AS jezik_naziv_kratica
                  				, t.naziv || ' - ' || tjj.hr_naziv AS trziste_jezik_naziv_za_prikaz
                  				, o.ime_naziv AS obradjuje_ime_naziv
                  				, NULL AS obradjuje_indikator
                  				, k.ime_naziv AS kreirao_ime_naziv
                  				, p.ime_naziv AS promijenio_ime_naziv
                  				, a.ime_naziv AS agent_ime_naziv
                  				, pa.kratica AS provizija_agenta_kratica
                  				, CASE WHEN pr.ime IS NOT NULL THEN pr.ime || ' ' || pr.prezime ELSE NULL END AS preporucio_ime_prezime
                  				, sk.naziv AS status_naziv
                  				, ak.naziv_buducnost AS sljedeca_aktivnost_naziv
                  				, ak.prioritet AS sljedeca_aktivnost_prioritet
                  				, h.naziv AS hitnost_naziv
                  				, (SELECT izvor_id FROM upit WHERE upit_id = (SELECT MIN(upit_id) FROM upit u WHERE u.kontakt_id = kontakt.kontakt_id)) AS upit_izvor_id
                  				, po.posjet_id AS posjet_id
                  				, po.datum_dolaska AS posjet_datum_dolaska
                  			 FROM 
                  				kontakt 
                  					JOIN v_korisnik k ON k.korisnik_id = kontakt.kreirao_id
                  					JOIN v_korisnik p ON p.korisnik_id = kontakt.promijenio_id
                  					JOIN status_kontakt sk USING (status_kontakt_id)
                  					JOIN aktivnost_kontakt ak ON ak.aktivnost_kontakt_id = kontakt.sljedeca_aktivnost_kontakt_id
                  					JOIN hitnost h USING (hitnost_id)
                  					LEFT JOIN v_korisnik o ON o.korisnik_id = kontakt.obradjuje_id
                  					LEFT JOIN drzava d USING (drzava_id)
                  					LEFT JOIN jezik j USING (jezik_id) 
                  					LEFT JOIN trziste_jezik tj USING (trziste_jezik_id) LEFT JOIN jezik tjj ON tj.jezik_id = tjj.jezik_id LEFT JOIN trziste t USING (trziste_id)  
                  					LEFT JOIN v_agent a USING (agent_id)
                  					LEFT JOIN provizija_agenta pa USING (provizija_agenta_id)
                  					LEFT JOIN kontakt pr ON pr.kontakt_id = kontakt.preporucio_id
                  					LEFT JOIN posjet po ON po.kontakt_id = kontakt.kontakt_id AND po.aktualno = 't'
                  			 WHERE (kontakt.kontakt_id='17')
                  === 2011-10-21 12:59:20,367 [80-3] INFO  DSResponse - [builtinApplication.add_kontakt_iz_upita, builtinApplication.null] DSResponse: List with 1 items
                  === 2011-10-21 12:59:20,367 [80-3] INFO  DSResponse - [builtinApplication.add_kontakt_iz_upita] DSResponse: List with 1 items
                  === 2011-10-21 12:59:20,368 [80-3] DEBUG AppBase - [builtinApplication.null] No userTypes defined, allowing anyone access to all operations for this application
                  === 2011-10-21 12:59:20,368 [80-3] DEBUG AppBase - [builtinApplication.null] No public zero-argument method named '_null' found, performing generic datasource operation
                  === 2011-10-21 12:59:20,369 [80-3] INFO  SQLDataSource - [builtinApplication.null] Performing update operation with
                  	criteria: {upit_id:18}	values: {vrijeme_promjene:new Date(1319194760319),status:2,kontakt_id:17,promijenio_id:2}
                  === 2011-10-21 12:59:20,370 [80-3] INFO  SQLDriver - [builtinApplication.null] Executing SQL update on 'PostgreSQL': UPDATE upit SET kontakt_id=17, promijenio_id=2, status=2, vrijeme_promjene='2011-10-21 12:59:20' WHERE (upit.upit_id='18')
                  === 2011-10-21 12:59:20,371 [80-3] DEBUG SQLDataSource - [builtinApplication.null] update operation affected 1 rows
                  === 2011-10-21 12:59:20,371 [80-3] INFO  SQLDataSource - [builtinApplication.null] primaryKeys: {upit_id=18}
                  === 2011-10-21 12:59:20,371 [80-3] INFO  SQLDataSource - [builtinApplication.null] PostgreSQL getLastRow(): using default operationBinding
                  === 2011-10-21 12:59:20,372 [80-3] DEBUG AppBase - [builtinApplication.null, builtinApplication.null] No userTypes defined, allowing anyone access to all operations for this application
                  === 2011-10-21 12:59:20,372 [80-3] DEBUG AppBase - [builtinApplication.null, builtinApplication.null] No public zero-argument method named '_null' found, performing generic datasource operation
                  === 2011-10-21 12:59:20,373 [80-3] INFO  SQLDataSource - [builtinApplication.null, builtinApplication.null] Performing fetch operation with
                  	criteria: {upit_id:18}	values: {upit_id:18}
                  === 2011-10-21 12:59:20,374 [80-3] INFO  SQLDataSource - [builtinApplication.null, builtinApplication.null] derived query: SELECT 
                  				$defaultSelectClause, i.skraceni_opis_za_prikaz AS izvor_skraceni_opis_za_prikaz
                  				, CASE WHEN k.ime IS NOT NULL THEN k.ime || ' ' || k.prezime ELSE NULL END AS kontakt_ime_prezime
                  				, p.ime_naziv AS promijenio_ime_naziv
                  			 FROM 
                  				upit JOIN v_izvor i USING (izvor_id) LEFT JOIN kontakt k USING (kontakt_id) 
                  					 JOIN v_korisnik p ON p.korisnik_id = upit.promijenio_id
                  			 WHERE $defaultWhereClause
                  === 2011-10-21 12:59:20,374 [80-3] INFO  SQLDriver - [builtinApplication.null, builtinApplication.null] Executing SQL query on 'PostgreSQL': SELECT 
                  				upit.upit_id, upit.grad, upit.prezime, upit.drzava, upit.sirovi_tekst, upit.vrijeme_dolaska, upit.ime, upit.poruka, upit.jezik, upit.promijenio_id, upit.vrijeme_kreiranja, upit.attachment_filename, upit.izvor_id, upit.kontakt_id, upit.email_from, upit.vrijeme_promjene, upit.starost, attachment IS NOT NULL AS ima_attachment, upit.status, attachment_filesize / 1024 AS attachment_velicina_kb, upit.attachment, upit.telefon, upit.attachment_date_created, upit.ip, upit.attachment_filesize, upit.email, upit.kreirao_id, upit.user_agent, upit.email_subject, upit.referer, i.skraceni_opis_za_prikaz AS izvor_skraceni_opis_za_prikaz
                  				, CASE WHEN k.ime IS NOT NULL THEN k.ime || ' ' || k.prezime ELSE NULL END AS kontakt_ime_prezime
                  				, p.ime_naziv AS promijenio_ime_naziv
                  			 FROM 
                  				upit JOIN v_izvor i USING (izvor_id) LEFT JOIN kontakt k USING (kontakt_id) 
                  					 JOIN v_korisnik p ON p.korisnik_id = upit.promijenio_id
                  			 WHERE (upit.upit_id='18')
                  === 2011-10-21 12:59:20,391 [izer] DEBUG SQLTransaction - Ending PostgreSQL transaction "22006934"
                  === 2011-10-21 12:59:20,411 [80-3] INFO  DSResponse - [builtinApplication.null, builtinApplication.null] DSResponse: List with 1 items
                  === 2011-10-21 12:59:20,411 [80-3] INFO  DSResponse - [builtinApplication.null] DSResponse: List with 1 items
                  === 2011-10-21 12:59:20,412 [80-3] DEBUG AppBase - [builtinApplication.null] No userTypes defined, allowing anyone access to all operations for this application
                  === 2011-10-21 12:59:20,412 [80-3] DEBUG AppBase - [builtinApplication.null] No public zero-argument method named '_null' found, performing generic datasource operation
                  === 2011-10-21 12:59:20,413 [80-3] INFO  SQLDataSource - [builtinApplication.null] Performing add operation with
                  	criteria: {vrijeme_kreiranja:new Date(1319194760319),inicijator:1,kreirao_id:2,aktivnost_kontakt_id:1,komentar:"<UNDISCLOSED>",kontakt_id:17,sredstvo_komunikacije:"F",novi_status_kontakt_id:101,poruka:"<UNDISCLOSED>",stari_status_kontakt_id:100}	values: {vrijeme_kreiranja:new Date(1319194760319),inicijator:1,kreirao_id:2,aktivnost_kontakt_id:1,komentar:"<UNDISCLOSED>",kontakt_id:17,sredstvo_komunikacije:"F",novi_status_kontakt_id:101,poruka:"<UNDISCLOSED>",stari_status_kontakt_id:100}
                  === 2011-10-21 12:59:20,414 [80-3] DEBUG SQLValuesClause - [builtinApplication.null] Sequences: {dnevnik_id=dnevnik_dnevnik_id_seq}
                  === 2011-10-21 12:59:20,414 [80-3] INFO  SQLDriver - [builtinApplication.null] Executing SQL update on 'PostgreSQL': INSERT INTO dnevnik (aktivnost_kontakt_id, inicijator, komentar, kontakt_id, kreirao_id, novi_status_kontakt_id, poruka, sredstvo_komunikacije, stari_status_kontakt_id, vrijeme_kreiranja, dnevnik_id) VALUES (1, 1, '<UNDISCLOSED>', 17, 2, 101, '<UNDISCLOSED>', 'F', 100, '2011-10-21 12:59:20', nextval('dnevnik_dnevnik_id_seq'))
                  === 2011-10-21 12:59:20,437 [80-3] DEBUG DataSourceDMI - Invocation threw exception
                  org.postgresql.util.PSQLException: An I/O error occured while sending to the backend.
                  	at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:283)
                  	at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:510)
                  	at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:386)
                  	at org.postgresql.jdbc2.AbstractJdbc2Statement.executeUpdate(AbstractJdbc2Statement.java:332)
                  	at org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:102)
                  	at com.isomorphic.sql.SQLDriver.doUpdate(SQLDriver.java:471)
                  	at com.isomorphic.sql.SQLDriver.update(SQLDriver.java:425)
                  	at com.isomorphic.sql.SQLDriver.executeUpdate(SQLDriver.java:545)
                  	at com.isomorphic.sql.SQLDataSource.executeNativeUpdate(SQLDataSource.java:388)
                  	at com.isomorphic.sql.SQLDataSource.SQLExecute(SQLDataSource.java:1341)
                  	at com.isomorphic.sql.SQLDataSource.processRequest(SQLDataSource.java:280)
                  	at com.isomorphic.sql.SQLDataSource.executeAdd(SQLDataSource.java:232)
                  	at com.isomorphic.datasource.DataSource.execute(DataSource.java:1231)
                  	at com.isomorphic.application.AppBase.executeDefaultDSOperation(AppBase.java:721)
                  	at com.isomorphic.application.AppBase.executeAppOperation(AppBase.java:658)
                  	at com.isomorphic.application.AppBase.execute(AppBase.java:491)
                  	at com.isomorphic.datasource.DSRequest.execute(DSRequest.java:1761)
                  	at com.dentalvukic.crm.server.dmi.KontaktDMI.addKontaktIzUpita(KontaktDMI.java:97)
                  	at sun.reflect.GeneratedMethodAccessor24.invoke(Unknown Source)
                  	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
                  	at java.lang.reflect.Method.invoke(Method.java:597)
                  	at com.isomorphic.base.Reflection.adaptArgsAndInvoke(Reflection.java:949)
                  	at com.isomorphic.datasource.DataSourceDMI.execute(DataSourceDMI.java:610)
                  	at com.isomorphic.datasource.DataSourceDMI.execute(DataSourceDMI.java:64)
                  	at com.isomorphic.datasource.DSRequest.execute(DSRequest.java:1758)
                  	at com.isomorphic.servlet.IDACall.handleDSRequest(IDACall.java:199)
                  	at com.isomorphic.servlet.IDACall.processRPCTransaction(IDACall.java:156)
                  	at com.isomorphic.servlet.IDACall.processRequest(IDACall.java:121)
                  	at com.isomorphic.servlet.IDACall.doPost(IDACall.java:73)
                  	at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
                  	at com.isomorphic.servlet.BaseServlet.service(BaseServlet.java:152)
                  	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
                  	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
                  	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
                  	at com.isomorphic.servlet.CompressionFilter.doFilter(CompressionFilter.java:259)
                  	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
                  	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
                  	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:368)
                  	at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:109)
                  	at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)
                  	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
                  	at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:97)
                  	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
                  	at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:100)
                  	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
                  	at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54)
                  	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
                  	at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:35)
                  	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
                  	at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:187)
                  	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
                  	at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:79)
                  	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
                  	at com.dentalvukic.crm.server.common.CrmConcurrentSessionFilter.doFilter(CrmConcurrentSessionFilter.java:55)
                  	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
                  	at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:169)
                  	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237)
                  	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
                  	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
                  	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:127)
                  	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:298)
                  	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857)
                  	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
                  	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
                  	at java.lang.Thread.run(Thread.java:619)
                  Caused by: java.net.SocketException: Socket closed
                  	at java.net.SocketInputStream.socketRead0(Native Method)
                  	at java.net.SocketInputStream.read(SocketInputStream.java:129)
                  	at org.postgresql.core.VisibleBufferedInputStream.readMore(VisibleBufferedInputStream.java:145)
                  	at org.postgresql.core.VisibleBufferedInputStream.ensureBytes(VisibleBufferedInputStream.java:114)
                  	at org.postgresql.core.VisibleBufferedInputStream.read(VisibleBufferedInputStream.java:73)
                  	at org.postgresql.core.PGStream.ReceiveChar(PGStream.java:274)
                  	at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1654)
                  	at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:257)
                  	... 69 more
                  === 2011-10-21 12:59:20,439 [80-3] WARN  RequestContext - dsRequest.execute() failed: 
                  org.postgresql.util.PSQLException: An I/O error occured while sending to the backend.
                  	at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:283)
                  	at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:510)
                  	at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:386)
                  	at org.postgresql.jdbc2.AbstractJdbc2Statement.executeUpdate(AbstractJdbc2Statement.java:332)
                  	at org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:102)
                  	at com.isomorphic.sql.SQLDriver.doUpdate(SQLDriver.java:471)
                  	at com.isomorphic.sql.SQLDriver.update(SQLDriver.java:425)
                  	at com.isomorphic.sql.SQLDriver.executeUpdate(SQLDriver.java:545)
                  	at com.isomorphic.sql.SQLDataSource.executeNativeUpdate(SQLDataSource.java:388)
                  	at com.isomorphic.sql.SQLDataSource.SQLExecute(SQLDataSource.java:1341)
                  	at com.isomorphic.sql.SQLDataSource.processRequest(SQLDataSource.java:280)
                  	at com.isomorphic.sql.SQLDataSource.executeAdd(SQLDataSource.java:232)
                  	at com.isomorphic.datasource.DataSource.execute(DataSource.java:1231)
                  	at com.isomorphic.application.AppBase.executeDefaultDSOperation(AppBase.java:721)
                  	at com.isomorphic.application.AppBase.executeAppOperation(AppBase.java:658)
                  	at com.isomorphic.application.AppBase.execute(AppBase.java:491)
                  	at com.isomorphic.datasource.DSRequest.execute(DSRequest.java:1761)
                  	at com.dentalvukic.crm.server.dmi.KontaktDMI.addKontaktIzUpita(KontaktDMI.java:97)
                  	at sun.reflect.GeneratedMethodAccessor24.invoke(Unknown Source)
                  	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
                  	at java.lang.reflect.Method.invoke(Method.java:597)
                  	at com.isomorphic.base.Reflection.adaptArgsAndInvoke(Reflection.java:949)
                  	at com.isomorphic.datasource.DataSourceDMI.execute(DataSourceDMI.java:610)
                  	at com.isomorphic.datasource.DataSourceDMI.execute(DataSourceDMI.java:64)
                  	at com.isomorphic.datasource.DSRequest.execute(DSRequest.java:1758)
                  	at com.isomorphic.servlet.IDACall.handleDSRequest(IDACall.java:199)
                  	at com.isomorphic.servlet.IDACall.processRPCTransaction(IDACall.java:156)
                  	at com.isomorphic.servlet.IDACall.processRequest(IDACall.java:121)
                  	at com.isomorphic.servlet.IDACall.doPost(IDACall.java:73)
                  	at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
                  	at com.isomorphic.servlet.BaseServlet.service(BaseServlet.java:152)
                  	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
                  	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
                  	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
                  	at com.isomorphic.servlet.CompressionFilter.doFilter(CompressionFilter.java:259)
                  	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
                  	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
                  	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:368)
                  	at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:109)
                  	at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)
                  	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
                  	at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:97)
                  	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
                  	at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:100)
                  	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
                  	at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54)
                  	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
                  	at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:35)
                  	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
                  	at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:187)
                  	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
                  	at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:79)
                  	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
                  	at com.dentalvukic.crm.server.common.CrmConcurrentSessionFilter.doFilter(CrmConcurrentSessionFilter.java:55)
                  	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
                  	at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:169)
                  	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237)
                  	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
                  	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
                  	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:127)
                  	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:298)
                  	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857)
                  	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
                  	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
                  	at java.lang.Thread.run(Thread.java:619)
                  Caused by: java.net.SocketException: Socket closed
                  	at java.net.SocketInputStream.socketRead0(Native Method)
                  	at java.net.SocketInputStream.read(SocketInputStream.java:129)
                  	at org.postgresql.core.VisibleBufferedInputStream.readMore(VisibleBufferedInputStream.java:145)
                  	at org.postgresql.core.VisibleBufferedInputStream.ensureBytes(VisibleBufferedInputStream.java:114)
                  	at org.postgresql.core.VisibleBufferedInputStream.read(VisibleBufferedInputStream.java:73)
                  	at org.postgresql.core.PGStream.ReceiveChar(PGStream.java:274)
                  	at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1654)
                  	at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:257)
                  	... 69 more
                  === 2011-10-21 12:59:20,440 [80-3] DEBUG RPCManager - Content type for RPC transaction: text/plain; charset=UTF-8
                  === 2011-10-21 12:59:20,440 [80-3] WARN  RPCManager - Exception thrown during onFailure processing
                  java.lang.Exception: No current connection for 'PostgreSQL'
                  	at com.isomorphic.sql.SQLTransaction.rollbackTransaction(SQLTransaction.java:170)
                  	at com.isomorphic.sql.SQLDataSource.onFailure(SQLDataSource.java:2275)
                  	at com.isomorphic.rpc.RPCManager.onFailure(RPCManager.java:1334)
                  	at com.isomorphic.rpc.RPCManager.onFailure(RPCManager.java:1234)
                  	at com.isomorphic.rpc.RPCManager.completeResponse(RPCManager.java:987)
                  	at com.isomorphic.rpc.RPCManager.send(RPCManager.java:582)
                  	at com.isomorphic.servlet.IDACall.processRPCTransaction(IDACall.java:156)
                  	at com.isomorphic.servlet.IDACall.processRequest(IDACall.java:121)
                  	at com.isomorphic.servlet.IDACall.doPost(IDACall.java:73)
                  	at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
                  	at com.isomorphic.servlet.BaseServlet.service(BaseServlet.java:152)
                  	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
                  	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
                  	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
                  	at com.isomorphic.servlet.CompressionFilter.doFilter(CompressionFilter.java:259)
                  	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
                  	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
                  	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:368)
                  	at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:109)
                  	at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)
                  	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
                  	at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:97)
                  	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
                  	at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:100)
                  	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
                  	at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54)
                  	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
                  	at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:35)
                  	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
                  	at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:187)
                  	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
                  	at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:79)
                  	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
                  	at com.dentalvukic.crm.server.common.CrmConcurrentSessionFilter.doFilter(CrmConcurrentSessionFilter.java:55)
                  	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
                  	at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:169)
                  	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237)
                  	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
                  	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
                  	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:127)
                  	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:298)
                  	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857)
                  	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
                  	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
                  	at java.lang.Thread.run(Thread.java:619)
                  === 2011-10-21 12:59:20,441 [80-3] DEBUG RPCManager - non-DMI response, dropExtraFields: false
                  === 2011-10-21 12:59:20,442 [80-3] INFO  Compression - /crm/sc/IDACall: 171 -> 153 bytes

                  Comment


                    #10
                    Systematic, you have this line in your code:
                    Code:
                    enroll.setPartOfTransaction(false);
                    Are you doing it on purpose?

                    I assume that if I assigned the RPCManager from the given DSRequest to all DSRequests I had created and called, they would participate in the same transaction, if I had set
                    Code:
                    sql.PostgreSQL.autoJoinTransactions: ALL
                    so I don't need to call
                    Code:
                    someDS.setPartOfTransaction(true);
                    to enforce it?

                    Originally posted by Sytematic
                    I think I am seeing the same symptoms in the 14th October (Power edition) nightly. Using Chrome for development mode.

                    Yet I am using MySQL.

                    I have the following DMI, for a web-app that stores Student-course-enrollment data (and things like exams). Upon enrolling a Student into a course, it has to subscribe him to lots of things like Lectures, and like Exams, this is done in 1 DMI.

                    The code and stacktrace are shown below. Actually pretty basic stuff is happening, just making sure some extra rows are inserted in different tables.

                    The weird thing is that it happens like 30% of the time, at pretty random points in the code.

                    Code:
                    package nl.sytematic.projects.Technicom.server.custom.dmi;
                    
                    import java.util.ArrayList;
                    import java.util.HashMap;
                    import java.util.List;
                    import java.util.Map;
                    
                    import com.isomorphic.datasource.DSRequest;
                    import com.isomorphic.datasource.DSResponse;
                    import com.isomorphic.js.JSONFilter;
                    
                    
                    public class CustomCourseEdition_students_StudentDMI {
                    	
                    	public DSResponse add(DSRequest req) throws Exception {
                    	    //if specified record's CourseEdition_id has lmsAccess==true 
                    		//     AND
                    		//if user already has an account in the 'users' table ---> add moodle enrollment
                    		// (else just enroll in OUR system, but not in moodle)
                    		
                    		
                    		//get if lmsAcc = true and get the max number of participants
                    		DSRequest getLms = new DSRequest("CourseEdition", "fetch");
                    		getLms.setOperationId("managersCourseFetchPublic");
                    		getLms.setRPCManager(req.getRPCManager());
                    		getLms.setCriteria("CourseEdition_id",req.getFieldValue("CourseEdition_id"));
                    		DSResponse resp = getLms.execute();
                    		List data = resp.getDataList();
                    		boolean lmsAccess=false;
                    		int moodleCourseId=0;
                    		int maxParticipants = 0;
                    		long numParticipants = 0;
                    		String courseName = "";
                    		String cedName = "";
                    		for( Object o : data){
                    			Map rec = (Map) o;
                    			if(rec.get("lmsAccess") == null)
                    				lmsAccess = false;
                    			else
                    				lmsAccess = (Boolean) rec.get("lmsAccess");
                    			
                    			if(rec.get("MoodleCourse_id") != null)
                    				moodleCourseId = (Integer) rec.get("MoodleCourse_id");
                    			
                    			if(rec.get("maximumParticipants") != null)
                    				maxParticipants = (Integer) rec.get("maximumParticipants");
                    
                    			if(rec.get("numParticipants") != null)
                    				numParticipants = (Long) rec.get("numParticipants");
                    			
                    			if(rec.get("courseName") != null)
                    				courseName=(String) rec.get("courseName");
                    			
                    			if(rec.get("editionName") != null)
                    				cedName = (String) rec.get("editionName");
                    			
                    			break;
                    		}
                    		
                    		//put ppl on waiting list if it exceeds the max number of subscriptions
                    		if(numParticipants >= maxParticipants) {
                    			req.setFieldValue("waitinglist", true);
                    		}
                    		else {
                    			req.setFieldValue("waitinglist", false);			
                    		}
                    		
                    		
                    		
                    		//see if user already has login credentials
                    		DSRequest isUser = new DSRequest("users","fetch");
                    		isUser.setRPCManager(req.getRPCManager());
                    		isUser.setCriteria("Student_id", req.getFieldValue("Student_id"));
                    		
                    		DSResponse users = isUser.execute();
                    		
                    		List data2 = users.getDataList();
                    		int hasCredentials = 0;
                    		for(Object o : data2){
                    			hasCredentials++;
                    		}
                    		
                    		if(lmsAccess && hasCredentials > 0){
                    			DSRequest student = new DSRequest("Student", "fetch");
                    			student.setRPCManager(req.getRPCManager());
                    			student.setCriteria("Student_id", req.getFieldValue("Student_id"));
                    			DSResponse stud = student.execute();
                    			List data3 = stud.getDataList();
                    			int moodleStudentId = 0;
                    			for(Object o : data3){
                    				Map rec = (Map) o;
                    				Object id = rec.get("Moodle_id");
                    				moodleStudentId = (id != null) ? (Integer) id : 0;
                    			}
                    			
                    			if(moodleCourseId>0) {
                    				DSRequest enroll = new DSRequest("CustomMoodleCreateEnrolment", "add");
                    				enroll.setPartOfTransaction(false);
                    				enroll.setFieldValue("userid", moodleStudentId);
                    				enroll.setFieldValue("role", "Student");
                    				enroll.setFieldValue("courseid", moodleCourseId);
                    				enroll.execute();
                    			}
                    			else {
                    				System.out.println("Warning, course does not exist in moodle, don't know where to enroll in, ignoring!");				
                    			}
                    		}
                    
                    		//this is used for populating the mail, if there is a <mail> tag specified in the operationBinding.
                    		//this way we have declarative mail templates.
                    		Map mailData= new HashMap();
                    		mailData.put("courseName",courseName);
                    		mailData.put("courseEditionName", cedName);
                    		mailData.put("firstname", (String) req.getFieldValue("firstname"));
                    		mailData.put("tussenvoegsel", (String) req.getFieldValue("tussenvoegsel"));
                    		mailData.put("surname", (String) req.getFieldValue("surname"));
                    		mailData.put("email", (String) req.getFieldValue("email"));
                    		req.getServletContext().setAttribute("mailData",mailData);
                    		
                    		
                    		//else just enroll in our system
                    		DSResponse enroll =  req.execute();
                    		
                    		//get all lectures belonging to this courseediton
                    		DSRequest getLectures = new DSRequest("Lecture", "fetch");
                    		getLectures.setOperationId("publicSubscriptionLookup");
                    	
                    		getLectures.setRPCManager(req.getRPCManager());
                    		getLectures.setCriteria("CourseEdition_id",req.getFieldValue("CourseEdition_id"));
                    		DSResponse r = getLectures.execute();
                    		List data4 = r.getDataList();
                    		System.out.println("Inserting presence rows upon subscription... ");
                    		DSRequest insertPresence = new DSRequest("Lecture_presence_Student", "add");
                    		insertPresence.setRPCManager(req.getRPCManager());
                    		insertPresence.setOperationId("publicLecturePresence");
                    
                    		List<Map<String,Object>> insertData = new ArrayList<Map<String,Object>>();
                    		for(Object o : data4){
                    			Map lec = (Map) o;
                    			Map<String,Object> record = new HashMap<String,Object>();
                    			
                    			Object lecId = lec.get("Lecture_id");
                    			int id = (lecId != null) ? (Integer) lecId : 0;
                    			
                    			record.put("Student_id",req.getFieldValue("Student_id"));
                    			record.put("Lecture_id", id);
                    			record.put("status", "onverwerkt");
                    			insertData.add(record);
                    		}
                    		insertPresence.setValues(insertData);
                    		insertPresence.execute();
                    
                    		
                    		//get all exams belonging to this courseedition, and insert a row in each of them for this student.
                    		DSRequest getExams = new DSRequest("Exam", "fetch");
                    		getExams.setOperationId("fetchFromPublicSubscription");
                    	
                    		getExams.setRPCManager(req.getRPCManager());
                    		getExams.setCriteria("CourseEdition_id",req.getFieldValue("CourseEdition_id"));
                    		DSResponse r2 = getExams.execute();
                    		List data5 = r2.getDataList();
                    		
                    		List<Map<String,Object>> insertData2 = new ArrayList<Map<String,Object>>();
                    		
                    		DSRequest insertEx = new DSRequest("Exam_participants_Student", "add");
                    		insertEx.setRPCManager(req.getRPCManager());
                    		insertEx.setOperationId("publicInsertInExam");
                    		System.out.println("Inserting exam rows upon subscription... ");
                    		for(Object o : data5){
                    			Map ex = (Map) o;
                    			Object exId = ex.get("Exam_id");
                    			Map<String,Object> record = new HashMap<String,Object>();
                    
                    			int id = (exId != null) ? (Integer) exId : 0;
                    			
                    			record.put("Student_id",req.getFieldValue("Student_id"));
                    			record.put("Exam_id", id);
                    			insertData2.add(record);
                    		}		
                    		insertEx.setValues(insertData2);
                    		insertEx.execute();
                    
                    		return enroll;
                    	}
                    	
                    	
                    	public DSResponse remove(DSRequest req) throws Exception {
                    		//fetch all lecture_presence_rows of this 
                    		DSRequest presence = new DSRequest("Lecture_presence_Student", "fetch");
                    		presence.setOperationId("AlsoJoinOnCourseEdition");
                    		presence.setRPCManager(req.getRPCManager());
                    		presence.setCriteria("students_id", req.getFieldValue("students_id"));
                    		DSResponse resp = presence.execute();
                    		//List data = resp.getDataList();
                    		Object d=resp.getData();
                    		JSONFilter j = (JSONFilter) d;
                    		List data = (List) j.getObj();
                    		//remove all the presence rows of this user.
                    		for(Object o : data){
                    			Map rec = (Map) o;
                    			DSRequest presenceRem = new DSRequest("Lecture_presence_Student", "remove");
                    			presenceRem.setRPCManager(req.getRPCManager());
                    			presenceRem.setFieldValue("presence_id", rec.get("presence_id"));
                    			presenceRem.execute();
                    		}
                    
                    		//fetch all Exam_participants_Student rows of this 
                    		DSRequest participants = new DSRequest("Exam_participants_Student", "fetch");
                    		participants.setOperationId("AlsoJoinOnCourseEdition");
                    		participants.setRPCManager(req.getRPCManager());
                    		participants.setCriteria("students_id", req.getFieldValue("students_id"));
                    		DSResponse resp2 = participants.execute();
                    		//List data = resp.getDataList();
                    		Object d2=resp2.getData();
                    		JSONFilter j2 = (JSONFilter) d2;
                    		List data2 = (List) j2.getObj();		
                    		
                    		for(Object o : data2){
                    			Map rec = (Map) o;
                    			DSRequest partRem = new DSRequest("Exam_participants_Student", "remove");
                    			partRem.setRPCManager(req.getRPCManager());
                    			partRem.setFieldValue("participants_id", rec.get("participants_id"));
                    			partRem.execute();
                    		}
                    		
                    		return req.execute();
                    	}
                    }
                    Stacktrace (it's long):
                    Code:
                    === 2011-10-21 14:48:56,788 [0-22] DEBUG SQLValuesClause - [builtinApplication.publicLecturePresence] Sequences: {presence_id=__default}
                    === 2011-10-21 14:48:56,789 [0-22] INFO  SQLDriver - [builtinApplication.publicLecturePresence] Executing SQL update on 'Mysql': INSERT INTO Lecture_presence_Student (Lecture_id, Student_id, status) VALUES (2, 25, 'onverwerkt')
                    === 2011-10-21 14:48:56,790 [0-22] DEBUG SQLDataSource - [builtinApplication.publicLecturePresence] add operation affected 1 rows
                    === 2011-10-21 14:48:56,790 [0-22] DEBUG MysqlDriver - [builtinApplication.publicLecturePresence] fetchLastRow data - primaryKeysPresent: {}sequencesNotPresent: [presence_id]
                    === 2011-10-21 14:48:56,791 [0-22] INFO  SQLDriver - [builtinApplication.publicLecturePresence] Executing SQL query on 'Mysql': SELECT LAST_INSERT_ID()
                    === 2011-10-21 14:48:56,791 [0-22] INFO  SQLDataSource - [builtinApplication.publicLecturePresence] primaryKeys: {presence_id=110}
                    === 2011-10-21 14:48:56,791 [0-22] INFO  SQLDataSource - [builtinApplication.publicLecturePresence] Mysql getLastRow(): using specific cacheSyncOperation pubfetch
                    === 2011-10-21 14:48:56,792 [0-22] DEBUG AppBase - [builtinApplication.publicLecturePresence, builtinApplication.pubfetch] No userTypes defined, allowing anyone access to all operations for this application
                    === 2011-10-21 14:48:56,793 [0-22] DEBUG AppBase - [builtinApplication.publicLecturePresence, builtinApplication.pubfetch] No public zero-argument method named '_pubfetch' found, performing generic datasource operation
                    === 2011-10-21 14:48:56,793 [0-22] INFO  SQLDataSource - [builtinApplication.publicLecturePresence, builtinApplication.pubfetch] Performing fetch operation with
                    	criteria: {presence_id:110}	values: {presence_id:110}
                    === 2011-10-21 14:48:56,802 [izer] DEBUG SQLTransaction - Ending Mysql transaction "1543929657"
                    === 2011-10-21 14:48:56,804 [0-22] INFO  SQLDataSource - [builtinApplication.publicLecturePresence, builtinApplication.pubfetch] derived query: SELECT $defaultSelectClause FROM $defaultTableClause WHERE $defaultWhereClause
                    === 2011-10-21 14:48:56,837 [0-22] INFO  SQLDriver - [builtinApplication.publicLecturePresence, builtinApplication.pubfetch] Executing SQL query on 'Mysql': SELECT Lecture_presence_Student.reason, Lecture_presence_Student.Student_id, Lecture_presence_Student.Lecture_id, Lecture_presence_Student.presence_id, Lecture_presence_Student.status FROM Lecture_presence_Student WHERE (Lecture_presence_Student.presence_id='110')
                    === 2011-10-21 14:48:56,838 [0-22] DEBUG DataSourceDMI - Invocation threw exception
                    java.sql.SQLException: Connection com.mysql.jdbc.JDBC4Connection@5c067f39 is closed.
                    	at org.apache.commons.dbcp.DelegatingConnection.checkOpen(DelegatingConnection.java:354)
                    	at org.apache.commons.dbcp.DelegatingConnection.createStatement(DelegatingConnection.java:222)
                    	at com.isomorphic.sql.SQLDriver.createFetchStatement(SQLDriver.java:966)
                    	at com.isomorphic.sql.SQLDriver.getTransformedResults(SQLDriver.java:319)
                    	at com.isomorphic.sql.SQLDriver.executeQuery(SQLDriver.java:562)
                    	at com.isomorphic.sql.SQLDataSource.executeNativeQuery(SQLDataSource.java:376)
                    	at com.isomorphic.sql.SQLDataSource.executeNativeQuery(SQLDataSource.java:371)
                    	at com.isomorphic.sql.SQLDataSource.SQLExecute(SQLDataSource.java:1289)
                    	at com.isomorphic.sql.SQLDataSource.processRequest(SQLDataSource.java:280)
                    	at com.isomorphic.sql.SQLDataSource.executeFetch(SQLDataSource.java:224)
                    	at com.isomorphic.datasource.DataSource.execute(DataSource.java:1154)
                    	at com.isomorphic.application.AppBase.executeDefaultDSOperation(AppBase.java:721)
                    	at com.isomorphic.application.AppBase.executeAppOperation(AppBase.java:658)
                    	at com.isomorphic.application.AppBase.execute(AppBase.java:491)
                    	at com.isomorphic.datasource.DSRequest.execute(DSRequest.java:1756)
                    	at com.isomorphic.sql.SQLDataSource.getLastRow(SQLDataSource.java:492)
                    	at com.isomorphic.sql.SQLDataSource.SQLExecute(SQLDataSource.java:1381)
                    	at com.isomorphic.sql.SQLDataSource.executeMultipleInsert(SQLDataSource.java:1412)
                    	at com.isomorphic.sql.SQLDataSource.SQLExecute(SQLDataSource.java:1090)
                    	at com.isomorphic.sql.SQLDataSource.processRequest(SQLDataSource.java:280)
                    	at com.isomorphic.sql.SQLDataSource.executeAdd(SQLDataSource.java:232)
                    	at com.isomorphic.datasource.DataSource.execute(DataSource.java:1156)
                    	at com.isomorphic.application.AppBase.executeDefaultDSOperation(AppBase.java:721)
                    	at com.isomorphic.application.AppBase.executeAppOperation(AppBase.java:658)
                    	at com.isomorphic.application.AppBase.execute(AppBase.java:491)
                    	at com.isomorphic.datasource.DSRequest.execute(DSRequest.java:1756)
                    	at nl.sytematic.projects.Technicom.server.custom.dmi.CustomCourseEdition_students_StudentDMI.add(CustomCourseEdition_students_StudentDMI.java:151)
                    	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                    	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
                    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
                    	at java.lang.reflect.Method.invoke(Method.java:597)
                    	at com.isomorphic.base.Reflection.adaptArgsAndInvoke(Reflection.java:949)
                    	at com.isomorphic.datasource.DataSourceDMI.execute(DataSourceDMI.java:610)
                    	at com.isomorphic.datasource.DataSourceDMI.execute(DataSourceDMI.java:64)
                    	at com.isomorphic.datasource.DSRequest.execute(DSRequest.java:1753)
                    	at com.isomorphic.servlet.IDACall.handleDSRequest(IDACall.java:199)
                    	at nl.sytematic.projects.Technicom.server.security.SecureIDACall.processRequest(SecureIDACall.java:125)
                    	at com.isomorphic.servlet.IDACall.doPost(IDACall.java:73)
                    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
                    	at com.isomorphic.servlet.BaseServlet.service(BaseServlet.java:152)
                    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
                    	at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
                    	at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1097)
                    	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:343)
                    	at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:109)
                    	at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)
                    	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
                    	at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:97)
                    	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
                    	at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:100)
                    	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
                    	at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:78)
                    	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
                    	at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54)
                    	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
                    	at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:35)
                    	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
                    	at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:187)
                    	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
                    	at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:187)
                    	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
                    	at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105)
                    	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
                    	at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:79)
                    	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
                    	at nl.sytematic.projects.Technicom.server.security.SytematicConcurrentSessionFilter.doFilter(SytematicConcurrentSessionFilter.java:62)
                    	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
                    	at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:149)
                    	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237)
                    	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
                    	at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1088)
                    	at com.isomorphic.servlet.CompressionFilter.doFilter(CompressionFilter.java:259)
                    	at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1088)
                    	at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)
                    	at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
                    	at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
                    	at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:729)
                    	at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
                    	at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
                    	at org.mortbay.jetty.handler.RequestLogHandler.handle(RequestLogHandler.java:49)
                    	at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
                    	at org.mortbay.jetty.Server.handle(Server.java:324)
                    	at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505)
                    	at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:843)
                    	at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:647)
                    	at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
                    	at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380)
                    	at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395)
                    	at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:488)
                    === 2011-10-21 14:48:56,840 [0-22] WARN  RequestContext - dsRequest.execute() failed: 
                    java.sql.SQLException: Connection com.mysql.jdbc.JDBC4Connection@5c067f39 is closed.
                    	at org.apache.commons.dbcp.DelegatingConnection.checkOpen(DelegatingConnection.java:354)
                    	at org.apache.commons.dbcp.DelegatingConnection.createStatement(DelegatingConnection.java:222)
                    	at com.isomorphic.sql.SQLDriver.createFetchStatement(SQLDriver.java:966)
                    	at com.isomorphic.sql.SQLDriver.getTransformedResults(SQLDriver.java:319)
                    	at com.isomorphic.sql.SQLDriver.executeQuery(SQLDriver.java:562)
                    	at com.isomorphic.sql.SQLDataSource.executeNativeQuery(SQLDataSource.java:376)
                    	at com.isomorphic.sql.SQLDataSource.executeNativeQuery(SQLDataSource.java:371)
                    	at com.isomorphic.sql.SQLDataSource.SQLExecute(SQLDataSource.java:1289)
                    	at com.isomorphic.sql.SQLDataSource.processRequest(SQLDataSource.java:280)
                    	at com.isomorphic.sql.SQLDataSource.executeFetch(SQLDataSource.java:224)
                    	at com.isomorphic.datasource.DataSource.execute(DataSource.java:1154)
                    	at com.isomorphic.application.AppBase.executeDefaultDSOperation(AppBase.java:721)
                    	at com.isomorphic.application.AppBase.executeAppOperation(AppBase.java:658)
                    	at com.isomorphic.application.AppBase.execute(AppBase.java:491)
                    	at com.isomorphic.datasource.DSRequest.execute(DSRequest.java:1756)
                    	at com.isomorphic.sql.SQLDataSource.getLastRow(SQLDataSource.java:492)
                    	at com.isomorphic.sql.SQLDataSource.SQLExecute(SQLDataSource.java:1381)
                    	at com.isomorphic.sql.SQLDataSource.executeMultipleInsert(SQLDataSource.java:1412)
                    	at com.isomorphic.sql.SQLDataSource.SQLExecute(SQLDataSource.java:1090)
                    	at com.isomorphic.sql.SQLDataSource.processRequest(SQLDataSource.java:280)
                    	at com.isomorphic.sql.SQLDataSource.executeAdd(SQLDataSource.java:232)
                    	at com.isomorphic.datasource.DataSource.execute(DataSource.java:1156)
                    	at com.isomorphic.application.AppBase.executeDefaultDSOperation(AppBase.java:721)
                    	at com.isomorphic.application.AppBase.executeAppOperation(AppBase.java:658)
                    	at com.isomorphic.application.AppBase.execute(AppBase.java:491)
                    	at com.isomorphic.datasource.DSRequest.execute(DSRequest.java:1756)
                    	at nl.sytematic.projects.Technicom.server.custom.dmi.CustomCourseEdition_students_StudentDMI.add(CustomCourseEdition_students_StudentDMI.java:151)
                    	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                    	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
                    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
                    	at java.lang.reflect.Method.invoke(Method.java:597)
                    	at com.isomorphic.base.Reflection.adaptArgsAndInvoke(Reflection.java:949)
                    	at com.isomorphic.datasource.DataSourceDMI.execute(DataSourceDMI.java:610)
                    	at com.isomorphic.datasource.DataSourceDMI.execute(DataSourceDMI.java:64)
                    	at com.isomorphic.datasource.DSRequest.execute(DSRequest.java:1753)
                    	at com.isomorphic.servlet.IDACall.handleDSRequest(IDACall.java:199)
                    	at nl.sytematic.projects.Technicom.server.security.SecureIDACall.processRequest(SecureIDACall.java:125)
                    	at com.isomorphic.servlet.IDACall.doPost(IDACall.java:73)
                    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
                    	at com.isomorphic.servlet.BaseServlet.service(BaseServlet.java:152)
                    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
                    	at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
                    	at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1097)
                    	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:343)
                    	at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:109)
                    	at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)
                    	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
                    	at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:97)
                    	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
                    	at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:100)
                    	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
                    	at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:78)
                    	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
                    	at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54)
                    	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
                    	at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:35)
                    	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
                    	at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:187)
                    	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
                    	at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:187)
                    	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
                    	at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105)
                    	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
                    	at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:79)
                    	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
                    	at nl.sytematic.projects.Technicom.server.security.SytematicConcurrentSessionFilter.doFilter(SytematicConcurrentSessionFilter.java:62)
                    	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
                    	at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:149)
                    	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237)
                    	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
                    	at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1088)
                    	at com.isomorphic.servlet.CompressionFilter.doFilter(CompressionFilter.java:259)
                    	at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1088)
                    	at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)
                    	at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
                    	at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
                    	at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:729)
                    	at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
                    	at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
                    	at org.mortbay.jetty.handler.RequestLogHandler.handle(RequestLogHandler.java:49)
                    	at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
                    	at org.mortbay.jetty.Server.handle(Server.java:324)
                    	at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505)
                    	at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:843)
                    	at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:647)
                    	at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
                    	at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380)
                    	at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395)
                    	at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:488)
                    === 2011-10-21 14:48:56,843 [0-22] DEBUG RPCManager - Content type for RPC transaction: text/plain; charset=UTF-8
                    === 2011-10-21 14:48:56,844 [0-22] WARN  RPCManager - Exception thrown during onFailure processing
                    java.lang.Exception: No current connection for 'Mysql'
                    	at com.isomorphic.sql.SQLTransaction.rollbackTransaction(SQLTransaction.java:170)
                    	at com.isomorphic.sql.SQLDataSource.onFailure(SQLDataSource.java:2275)
                    	at com.isomorphic.rpc.RPCManager.onFailure(RPCManager.java:1334)
                    	at com.isomorphic.rpc.RPCManager.onFailure(RPCManager.java:1234)
                    	at com.isomorphic.rpc.RPCManager.completeResponse(RPCManager.java:987)
                    	at com.isomorphic.rpc.RPCManager.send(RPCManager.java:582)
                    	at nl.sytematic.projects.Technicom.server.security.SecureIDACall.processRequest(SecureIDACall.java:132)
                    	at com.isomorphic.servlet.IDACall.doPost(IDACall.java:73)
                    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
                    	at com.isomorphic.servlet.BaseServlet.service(BaseServlet.java:152)
                    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
                    	at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
                    	at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1097)
                    	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:343)
                    	at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:109)
                    	at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)
                    	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
                    	at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:97)
                    	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
                    	at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:100)
                    	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
                    	at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:78)
                    	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
                    	at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54)
                    	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
                    	at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:35)
                    	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
                    	at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:187)
                    	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
                    	at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:187)
                    	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
                    	at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105)
                    	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
                    	at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:79)
                    	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
                    	at nl.sytematic.projects.Technicom.server.security.SytematicConcurrentSessionFilter.doFilter(SytematicConcurrentSessionFilter.java:62)
                    	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
                    	at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:149)
                    	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237)
                    	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
                    	at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1088)
                    	at com.isomorphic.servlet.CompressionFilter.doFilter(CompressionFilter.java:259)
                    	at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1088)
                    	at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)
                    	at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
                    	at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
                    	at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:729)
                    	at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
                    	at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
                    	at org.mortbay.jetty.handler.RequestLogHandler.handle(RequestLogHandler.java:49)
                    	at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
                    	at org.mortbay.jetty.Server.handle(Server.java:324)
                    	at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505)
                    	at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:843)
                    	at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:647)
                    	at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
                    	at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380)
                    	at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395)
                    	at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:488)
                    === 2011-10-21 14:48:56,846 [0-22] DEBUG RPCManager - DMI response, dropExtraFields: true
                    === 2011-10-21 14:48:56,847 [0-22] DEBUG RPCManager - DMI response, dropExtraFields: true
                    === 2011-10-21 14:48:56,847 [0-22] DEBUG RPCManager - non-DMI response, dropExtraFields: false
                    === 2011-10-21 14:48:56,855 [0-22] INFO  Compression - /generatedcode/sc/IDACall: 1344 -> 455 bytes

                    Comment


                      #11
                      No I don't think i did that on purpose. Not sure if it's causing it.

                      This code is also a few months old, and I think only the last few versions have had this bug.

                      Comment


                        #12
                        We're pretty sure the problem you're seeing here is indeed the one we fixed earlier this month, but we somehow managed to miss porting that fix to the 2.5 maintenance branch. We corrected this over the weekend, so the current 2.x nightly (2011-10-24) should resolve your issues. Please try it and let us know.

                        Comment


                          #13
                          It indeed seems to work! Thanks.

                          Comment


                            #14
                            @Isomorphic i'm sorry to fork this thread...but we meet the same issue and we can't upgrade our system simply...would you please tell us why the issue happens and how you fix it? thank you!

                            Comment

                            Working...
                            X