Quantcast
Channel: SmartClient Forums
Viewing all 4756 articles
Browse latest View live

Reify import looks quite a bit different than mockup

$
0
0
Hi, attached are a screen capture of the mockup and the
corresponding bmml file. The import got a few things
wrong - font size, height of a layout etc. I am getting
around this by manually updating the component xml file.
But thought you might be interested in knowing about this
if this is an edge case for you.

Attached Images
File Type: png screenshot.PNG (10.1 KB)
Attached Files
File Type: bmml mainpage.bmml (2.8 KB)

Drag Drop with confirmation message

$
0
0
SmartGWT version: SmartClient Version: v9.1p_2014-03-04/PowerEdition Deployment (built 2014-03-04)
Browser: FireFox ESR 24.3.0, with FireBug installed

Hi,

I am creating a drag/drop page that has 4 VStack lanes and individual drag-able labels in the lanes. Users would like to get a confirmation pop-up (that requires a trip to the server to get data) upon dragging the label to another lane. Problem is I cannot cancel the drag event if the user clicks "No" on the pop-up, it looks like the event has been "committed" when the pop-up happens.

Below is a sample of what I am trying to do, is there a way to do this? Thanks.

Code:

rivate VStack createLane(final String id,
                        final String[] dropTypes) {
                final VStack lane = new VStack();
                lane.setID(id);
                lane.setShowEdges(true);
                lane.setMembersMargin(5);
                lane.setLayoutMargin(5);
                lane.setCanAcceptDrop(true);
                lane.setAnimateMembers(true);
                lane.setDropLineThickness(3);
                lane.setEdgeSize(1);
                lane.setHeight100();
                lane.setDropTypes(dropTypes);               
                lane.addDropHandler(new DropHandler() {
                        @Override
                        public void onDrop(final DropEvent event) { 
                final Canvas target = EventHandler.getDragTarget();
                                //Suppose to involve a server call to get some data first
                SC.ask("Please confirm the move", new BooleanCallback() {
                                        @Override
                                        public void execute(final Boolean value) {                                               
                                                if (value) {                                                       
                                                        updateData();
                                                } else {
                                                        //Cannot undo the move here
                                                        event.cancel();
                                                }
                                        }                                                                               
                                });
            }
                });
                return lane;
        }

TimeLine ignores endDate

$
0
0
Hello,

I am trying to get the time line working... but my timeline ignores all endDates. According to my Json Dataset every object should end after one day... but the timeline does not recognize the endDate so that in the timeline every object ends with an endDate in 2049 (see Screenshot).

Any Ideas? Is this A bug?

I am using smartGWT 5p, Build 22.04.

Thanks
Andy



TimeLine:
Code:

private void initTimeLine()
    {
        Date startDate = getMinTourStartDate();
        CalendarUtil.addDaysToDate( startDate, -1 );

        Date endDate = getMaxTourEndDate();
        CalendarUtil.addDaysToDate( endDate, 1 );

        HeaderLevel[] headerLevels =
            new HeaderLevel[] { new HeaderLevel( TimeUnit.YEAR ), new HeaderLevel( TimeUnit.WEEK ),
                new HeaderLevel( TimeUnit.DAY ) };

        timeLine = new Timeline();       
        DataSource ds =
            CItemSupplyShows.getInstance();
        timeLine.setDataSource( ds );
       
        timeLine.setCanEditLane( false );
        timeLine.setShowEventDescriptions( true );
        timeLine.setHeaderLevels( headerLevels );
        timeLine.setLaneFields( new ListGridField[] { new ListGridField( "title", "Name", 300 ) } );
        timeLine.setLanes( getLanes() );
        timeLine.setWidth100();
        timeLine.setHeight100();
        timeLine.setStartDate( startDate );
        timeLine.setEndDate( endDate );
        timeLine.setDisableWeekends( false );
        timeLine.setAutoFetchData( true );
        timeLine.setCanEditLane( false );
        timeLine.setShowEventDescriptions( false );
        timeLine.setCanRemoveEvents( false );

    }

DataSource:
Code:

public class CItemSupplyShows
    extends DataSource
{

    private static CItemSupplyShows instance = null;
    private final DateDisplayFormat dateFormatter = DateDisplayFormat.TOEUROPEANSHORTDATETIME;
    private final DateDisplayFormat dateFormatter2 = DateDisplayFormat.TOEUROPEANSHORTDATE;
    CHashMaps maps = new CHashMaps();

    public static CItemSupplyShows getInstance()
    {
        if ( instance == null )
        {
            instance = new CItemSupplyShows( "supplyItemShows" );
        }

        return instance;
    }

    public CItemSupplyShows( String id )
    {
        String dataUrl = GWT.getHostPageBaseURL() + "rest/getAllShows";
       
        setDataFormat( DSDataFormat.JSON );
        setDataURL( dataUrl );
        setClientOnly( true );
        setID( id );

        DataSourceIntegerField idField = new DataSourceIntegerField( "show_id", "show_id" );

        DataSourceTextField nameField = new DataSourceTextField( "name", "name" );
        DataSourceTextField descriptionField = new DataSourceTextField( "description", "description" );
        DataSourceDateTimeField startDateField = new DataSourceDateTimeField( "startDate", "startDate" );
        DataSourceDateTimeField endDateField = new DataSourceDateTimeField( "endDate", "endDate" );
        DataSourceTextField laneField = new DataSourceTextField( "lane", "lane" );

        idField.setPrimaryKey( true );
        idField.setHidden( true );

        setFields( idField, startDateField, endDateField, laneField, nameField, descriptionField );
    }
}


Attached Images
File Type: png Bildschirmfoto1.png (5.7 KB)

CKeditor into Smartclient

$
0
0
Hello,
I want to integrate Ckeditor in Smartclient.
My code is
Code:

ClassFactory.defineClass("CKEditor", "Canvas").addProperties({
    redrawOnResize: false,

    getInnerHTML : function () {
        // Write out a <textarea> with a known ID.
        return "<textarea id='" + this.getID() + "_ckEditor' style='width:" + this.getWidth() + "px;height:" + this.getHeight() + "px;margin-bottom:10px'></textarea>";
    },

    draw : function () {
        if (!this.readyToDraw()) return this;

        // Call the superclass method to draw, then have CKEditor replace the <textarea> we
        // wrote out with a CKEditor widget.
        this.Super("draw", arguments);
        this._ckEditor = CKEDITOR.replace(this.getID() + "_ckEditor", {
            // Use a base zIndex of 300,000 for the dialogs such as the Insert Special Character dialog.
            baseFloatZIndex: 300000,

            // Disable these plugins because they cause the CKEditor widget to grow outside of the
            // canvas' bounds.
            removePlugins: "autogrow,resize,maximize,div,elementspath"
        });
        return this;
    },
    getValue:function() {
        return CKEDITOR.instances[this.getID()+"_ckEditor"].getData();
    },
    setValue:function(value) {
        if (CKEDITOR.instances[this.getID()+"_ckEditor"]) {
            CKEDITOR.instances[this.getID()+"_ckEditor"].setData(value);
        } else {
            ckInitValue = value;
        }
    }
});

This is the code I use to display
Code:


VLayout.create({
        ID: "VLayoutNotasExt",
    members:[       
            CKEditor.create({
                ID:"editorNotasExt",
                height: "100%",
                                autoDraw:false,
                ID: "editorNotasExt",
                height:"100%",
                margin: 3,
                overflow:"hidden",
                //canDragResize:true,
                showEdges:true
          })
      ]
        })

https://isomorphic.atlassian.net/wiki/display/Main/Using+CKEditor+or+fckEditor+as+a+widget


I have a button "Show Editor", the first time that you click on the button gives the following error and does not show the editor.

Code:

TypeError: a.ui.space(...) is null.
The second time, shows the editor and the error
Can someone help me?
Thank you!

case sensitive and SQL generation

$
0
0
Hello.

I am having trouble figuring out what settings I need to apply on the datasource level to force SQL query generation not to use case insensitive approach by default.

Code:

<?xml version="1.0" encoding="UTF-8"?>
<DataSource ID="wdTestEquals" serverType="sql" dbName="TXDEV1" tableName="dummy" autoJoinTransactions="true" defaultTextMatchStyle="exactCase">
      <fields>
            <field name="guwid" nativeName="guwid" escapeHTML="true" textMatchStyle="exactCase" operator="equals"/>
            <field name="eventTimeStamp" nativeName="IMTHIST_INSERT_TS" escapeHTML="true"/>
      </fields>
</DataSource>

None of the specially added attributes (defaultTextMatchStyle="exactCase" on the datasource tag, textMatchStyle="exactCase" and operator="equals" on the guwid field tag) convinced the framework not to use LOWER() in the SQL generated

So, sending via REST:

Code:

{
    dataSource:"wdTestEquals",
    operationType:"fetch",
    data:{
          guwid:"F059134141832171700573"
    }
}

or
Code:

{
    dataSource:"wdTestEquals",
    operationType:"fetch",
    data:{
          guwid:"F059134141832171700573"
    },
    textMatchStyle:"exactCase"
}

generates the SQL:
SELECT dummy.guwid, dummy.IMTHIST_INSERT_TS AS eventTimeStamp FROM dummy WHERE (LOWER(dummy .guwid)=LOWER('f059134141832171700573')

using smartgwt 5.0-p20150423

is datasource editable & apply live_filter on grid

$
0
0
live filtering

i have done the live filtering....

its working correctly

the way i did it by converting the list grid into datasource and applied the filter

but the problem is ..datasource is not supporting the editable columns

we need to save consent by tick/untick but it is locked ..as datasource doent have any editable column methods as the list grid..

:(




package com.gsihealth.dashboard.client.consent.healthhomeorganization;

import com.google.gwt.core.client.GWT;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.gsihealth.dashboard.client.DashBoardApp;
import com.gsihealth.dashboard.client.common.ProgressBarWindow;
import com.gsihealth.dashboard.client.common.RetryActionCallback;
import com.gsihealth.dashboard.client.service.OrganizationPatientConsentService;
import com.gsihealth.dashboard.client.service.OrganizationPatientConsentServiceAsync;
import com.gsihealth.dashboard.client.util.ApplicationContextUtils;
import com.gsihealth.dashboard.client.util.StringUtils;
import com.gsihealth.dashboard.common.ConsentConstants;
import com.gsihealth.dashboard.common.dto.PersonDTO;
import com.gsihealth.dashboard.entity.dto.OrganizationPatientConsentDTO;
import com.smartgwt.client.data.DataSource;
import com.smartgwt.client.data.fields.DataSourceBooleanField;
import com.smartgwt.client.data.fields.DataSourceTextField;
import com.smartgwt.client.types.Alignment;
import com.smartgwt.client.types.FetchMode;
import com.smartgwt.client.types.ListGridEditEvent;
import com.smartgwt.client.types.ListGridFieldType;
import com.smartgwt.client.types.SelectionStyle;
import com.smartgwt.client.util.SC;
import com.smartgwt.client.widgets.Button;
import com.smartgwt.client.widgets.events.ClickEvent;
import com.smartgwt.client.widgets.events.ClickHandler;
import com.smartgwt.client.widgets.grid.ListGrid;
import com.smartgwt.client.widgets.grid.ListGridField;
import com.smartgwt.client.widgets.grid.ListGridRecord;
import com.smartgwt.client.widgets.layout.HLayout;
import com.smartgwt.client.widgets.layout.Layout;
import com.smartgwt.client.widgets.layout.LayoutSpacer;
import com.smartgwt.client.widgets.layout.VLayout;
import java.util.ArrayList;
import java.util.List;

/**
*
* @author Chad Darby
*/
public class OrganizationPatientConsentPanel extends VLayout {

private PersonDTO personDTO;
private OrganizationPatientConsentServiceAsync organizationPatientConsentService = GWT.create(OrganizationPatientConsentService.class);
private Button saveButton;
private ListGrid listGrid;
private static final int CONSENT_COLUMN = 3;

private ProgressBarWindow progressBarWindow;

public OrganizationPatientConsentPanel(PersonDTO thePersonDTO) {
personDTO = thePersonDTO;

buildGui();
DashBoardApp.restartTimer();

loadOrganizationPatientConsentData();
}

private void buildGui() {

setMargin(5);

listGrid = buildListGrid();

setPadding(5);
addMember(listGrid);

// layout spacer b/w layout lables and layout of remover button
LayoutSpacer topSpacer = new LayoutSpacer();
topSpacer.setHeight(20);
addMember(topSpacer);

// layout for remove button
Layout buttonBar = buildButtonBar();
addMember(buttonBar);

progressBarWindow = new ProgressBarWindow("Saving", "Saving...");

}

/** Helper method to build a ListGrid
*
* @return
*/
private ListGrid buildListGrid() {

String[] columnNames = {OrganizationConsentConstants.ORGANIZATION_NAME, OrganizationConsentConstants.CITY, OrganizationConsentConstants.STATE, OrganizationConsentConstants.PERMIT_CONSENT};

ListGrid theListGrid = new ListGrid();

theListGrid.setCanReorderFields(true);
theListGrid.setCanReorderRecords(true);

theListGrid.setWidth100();
theListGrid.setHeight100();

theListGrid.setAlternateRecordStyles(true);
theListGrid.setShowAllRecords(false);
theListGrid.setSelectionType(SelectionStyle.SINGLE);

theListGrid.setCanEdit(true);
theListGrid.setDataFetchMode(FetchMode.LOCAL);
theListGrid.setCanEdit(false);
theListGrid.setAutoFetchData(true);
theListGrid.setShowFilterEditor(true);
theListGrid.setFilterByCell(true);
theListGrid.setFilterOnKeypress(true);
theListGrid.setEditEvent(ListGridEditEvent.CLICK);
theListGrid.setEditByCell(true);

// add fields
ListGridField[] fields = buildListGridFields(columnNames);
theListGrid.setFields(fields);

theListGrid.setEmptyMessage("...");
theListGrid.setCanResizeFields(true);

return theListGrid;
}

private ListGridField[] buildListGridFields(String[] columnNames) {
ListGridField[] fields = new ListGridField[columnNames.length];

for (int i = 0; i < columnNames.length; i++) {
String tempColumnName = columnNames[i];
ListGridField tempField = buildListGridField(tempColumnName);
fields[i] = tempField;

if (i == CONSENT_COLUMN) {
fields[i].setCanEdit(true);
fields[i].setType(ListGridFieldType.BOOLEAN);
}
}

return fields;
}

private ListGridField buildListGridField(String title) {
ListGridField tempField = new ListGridField(title, title);

tempField.setCanEdit(false);

return tempField;
}

private Layout buildButtonBar() {
// layout for button bar
HLayout buttonLayout = new HLayout(10);
buttonLayout.setWidth100();
buttonLayout.setAlign(Alignment.CENTER);

// remove button
saveButton = new Button("Save Consent");
saveButton.setID("SaveConsent");
saveButton.setWidth(140);
saveButton.addClickHandler(new SaveClickHandler());
buttonLayout.addMember(saveButton);

return buttonLayout;
}

private void loadOrganizationPatientConsentData() {

LoadOrganizationPatientConsentDataCallback loadOrganizationPatientConsentDataCallback = new LoadOrganizationPatientConsentDataCallback();
loadOrganizationPatientConsentDataCallback.attempt();
}

public void populateListGrid(ListGridRecord[] data) {
ListGridRecord[] records = listGrid.getRecords();

// scroll to first row
listGrid.scrollToRow(1);
final DataSource dataSource = new DataSource();
dataSource.setID("dataSource");
dataSource.setClientOnly(true);
DataSourceTextField name = new DataSourceTextField("Organization Name", "Organization Name");
DataSourceTextField city = new DataSourceTextField("City", "City");
DataSourceTextField state = new DataSourceTextField("State", "State");
DataSourceBooleanField Permit = new DataSourceBooleanField("Permit Consent", "Permit Consent");


dataSource.setFields(name, city, state, Permit);
dataSource.setCacheData(data);
listGrid.setDataSource(dataSource);
listGrid.setData(data);
listGrid.markForRedraw();
}

class LoadOrganizationPatientConsentDataCallback extends RetryActionCallback<List<OrganizationPatientConsentDTO>> {

@Override
public void attempt() {
long patientId = personDTO.getPatientEnrollment().getPatientId();
long communityId= ApplicationContextUtils.getLoginResult().getCommunityId();
organizationPatientConsentService.getOrganizationPatientConsentList(patientId,communityId, this);
}

@Override
public void onCapture(List<OrganizationPatientConsentDTO> data) {
long patientOrgId = personDTO.getPatientEnrollment().getOrgId();
String programLevelConsentStatus = personDTO.getPatientEnrollment().getProgramLevelConsentStatus();
ListGridRecord[] records = OrganizationPatientConsentUtils.convert(data, patientOrgId, programLevelConsentStatus);
populateListGrid(records);
}
}

class SaveClickHandler implements ClickHandler {

@Override
public void onClick(ClickEvent clickEvent) {

progressBarWindow.show();

ListGridRecord[] records = listGrid.getRecords();

List<OrganizationPatientConsentDTO> dtos = getCheckedItems(records);

long patientId = personDTO.getPatientEnrollment().getPatientId();
long communityId= ApplicationContextUtils.getLoginResult().getCommunityId();
organizationPatientConsentService.saveOrganizationPatientConsentList(patientId, dtos,communityId, new SaveAsyncCallback());
}

private List<OrganizationPatientConsentDTO> getCheckedItems(ListGridRecord[] records) {

List<OrganizationPatientConsentDTO> dtos = new ArrayList<OrganizationPatientConsentDTO>();

for (ListGridRecord tempRecord : records) {
OrganizationPatientConsentRecord tempOrgRecord = (OrganizationPatientConsentRecord) tempRecord;

OrganizationPatientConsentDTO tempDto = tempOrgRecord.getOrganizationPatientConsentDto();

String consentStatus = tempDto.getConsentStatus();

boolean hasPermit = StringUtils.equalsIgnoreCase(consentStatus, ConsentConstants.CONSENT_PERMIT);
if (hasPermit) {
dtos.add(tempDto);
}
}

return dtos;
}
}

class SaveAsyncCallback implements AsyncCallback {

@Override
public void onSuccess(Object t) {
progressBarWindow.hide();

SC.say("Save successful.");
}

@Override
public void onFailure(Throwable thrwbl) {
progressBarWindow.hide();

SC.warn("Error during save. Please try again.");
}
}
}

RPCManager handleError method not called on server's side RuntimeException

$
0
0
Hi,

GWT Version : 2.6.1
SmartGWT Version : 5.0-p20141210
Firefox version : 24
JBoss EAP 6.1+

We don't use SmartGWT server, our server is a JBoss where we have implemented REST Web Services.

On client side, we do use SmartGWT REST datasources.

---------------------
-- SERVER SIDE --
---------------------

When we have a business logic error, we perform a :
Code:

throw new RuntimeException("my businness logic error message");
We have defined our implementation of interface ExceptionMapper in order make server side Exceptions reach client as REST formated Exceptions
Code:

javax.ws.rs.ext.ExceptionMapper<E extends Throwable>
--------------------
-- CLIENT SIDE --
--------------------

On module load, we override RPCManager error handler methods :

Code:

GWT.setUncaughtExceptionHandler(new GWT.UncaughtExceptionHandler() {
  @Override
  public void onUncaughtException(final Throwable e) {
    SC.warn("onUncaughtException");
  });

RPCManager.setHandleErrorCallback(new HandleErrorCallback() {
  @Override
  public void handleError(final DSResponse dsResponse, final DSRequest dsRequest) {
    SC.warn("handleError");
  });

RPCManager.setHandleTransportErrorCallback(new HandleTransportErrorCallback() {
  @Override
  public void handleTransportError(final int i, final int i1, final int i2, final String s) {
    SC.warn("handleTransportError");
  });

------------------------------
-- 1ST CASE : WORKING --
------------------------------

I have a DynamicForm with my databinded FormItem's.
I perform a :

Code:

myForm.saveData()
It works perfectly and when i'm in the case I generate a RuntimeException on server side, methods handleTransportError and handleError overriden previously are beeing called.

First handleTransportError then handleError.

I retrieve my businness logic error message from handleTransportError method (I simplified the code above for this thread).


------------------------------------
-- 2ND CASE : NOT WORKING --
------------------------------------

Now, I have a databinded ListGrid on which i perform :

Code:

grid.removeSelectedData();
It works perfectly by when i'm in the case I generate a RuntimeException on server side, only method handleTransportError overriden previously is beeing called.

The handleError method is actually not called.

I added a callback on removeSelectedData method :

Code:

grid.removeSelectedData(new DSCallback() {
  @Override
  public void execute(DSResponse dsResponse, Object data, DSRequest dsRequest) {
    if (dsResponseStatus != DSResponse.STATUS_SUCCESS) {
    String httpResponseText = dsResponse.getAttribute("httpResponseText");
    final JSONValue body = JSONParser.parseStrict(httpResponseText);
    final JSONObject response = body.isObject().get("response").isObject();
    final String errorMessage = response.get("errors").isString().stringValue();
    SC.warn(errorMessage);
  }
});

Callback on removeSelectedData method is being called.

I retrieve my business logic error message in both :
- callback of removeSelectedData method
- handleTransportError method


I have my workaround but i want to understand why handleError method is not called on my 2nd case, it bothers me !

What i am missing on my client side to make it works as it should be, in RPCManager methods overriden.

thanks by advance.

NoScriptNoTheme NoScript NoTheme smartgwtee smartgwtpower questions

$
0
0
Hi Isomorphic,

I have some questions regarding the myproj.gwt.xml-includes.

As I'm loading your framework JS files manually and I'm not using Enterprise skin (but an own Simplicity-based one), I should be using *NoScriptNoTheme, which you added here.

For some reason I'm currently still using com.smartgwt.SmartGwtNoScript, which is working, but most likely not correct. (Note: "com.smartgwt" without "ee"- or "power"-suffix)

My questions:
  • As I'm using power edition, do I have to include com/smartgwtpower/SmartGwtPowerNoScript.gwt.xml?
    I'm asking because I noted that the Power-BuiltInDS is using "<inherits name="com.smartgwtee.SmartGwtEE"/>" and <inherits name="com.smartgwtee.tools.Tools"/> in its BuiltInDS.gwt.xml. Is this correct?
  • If so, could you please add com/smartgwtpower/SmartGwtPowerNoScriptNoTheme (see screenshot)
  • Is my current setup with com.smartgwt.SmartGwtNoScript "dangerous" with respect to twice-loaded skins (I do not see such requests in the F12 tools)?

Thank you & Best regards,
Blama

Attached Images
File Type: png Eclipse-package-browsing.png (17.5 KB)

Very Minor SmartGWT Quick Start Guide error regarding skins

$
0
0
Hi Isomorphic,

the QSG states:
Quote:

In your own project, you switch to a different theme by inheriting a GWT module in your .gwt.xml file. The default themes are found in the smartgwt.jar file included in the SDK under the package com.smartclient.theme. An IDE such as Eclipse will allow you to browse smartgwt.jar to find available themes. To switch themes, add an <inherits> tag with the fully qualified Java package name of the .gwt.xml file for the theme, after other Smart GWT inherits
The skins are currently found in smartgwtee.jar/smartgwtpower.jar and smartgwt-skins.jar. smartgwt.jar is an empty file, at least for me (see screenshot).

Best regards,
Blama

Attached Images
File Type: png Eclipse-package-browsing.png (20.3 KB)

Right-click contextMenu for calendar events

$
0
0
Hey guys,

we would like to display right-click menus for timeline events.
It seems that at the moment only the rollover context button supports context menus. Eventhough that’s better than nothing, it is not really what we want since it seems to be not very intuitive . In other components it is also possible to open a contextmenu just with a right click for example in a listgrid.

I discovered, that if you open the context button menu once (see picture 1), you suddenly can open the same context menu with a right click on the event (see picture 2).

Picture 01:


Picture 02:


I think, there is something wrong, and there should be the possibility to get a contextMenu if there is a contextmenu defined in the calendarEvent.
This is tested against the latst nighlty SmartClient_v100p_2015-04-24_Pro and the latest chrome version.

Here is the code for reproduction:
Code:

isc.Timeline.create({
        "ID" : "timeline",
        "width" : "100%",
        "height" : "100%",
        "startDate" : new Date(2015, 2, 1),
        "endDate" : new Date(2015, 2, 5),
        "showEventDescriptions" : false,
        "showEventHeaders" : false,
        "canEditEvents" : false,
        "canCreateEvents" : false,
        "showControlsBar" : false,
        "getEventCanvasMenuItems" : function(canvas) {
                return canvas.event.contextMenu.items
        },
        "lanes" :
        [{
                "hierarchyLevel" : 1,
                "height" : 30,
                "name" : "1",
                "title" : "January"
                }
        ],
        "data" :
        [{
                "lane" : "1",
                "startDate" : new Date(2015, 2, 2, 0, 0),
                "backgroundColor" : "#00BD02",
                "endDate" : new Date(2015, 2, 4, 23, 59),
                "contextMenu" : isc.Menu.create({
                        items : [
                                {title: "item1"},
                                {title: "item2"}
                        ]
                }),
        }
]})

Is it somehow possible to directly display the context menu with a right click on the whole calendar event without first clicking on the context button?

Best regards

Filter DateField like a TextField

$
0
0
I put in dataSource object with Date type parametr:
Code:

public static DataSource createDS(List<AgentADBean> agents)
    {
        DataSource ds = new DataSource();
        ds.setClientOnly(true);
        ds.setCacheData(createRecordFromAgentAD(agents));

        ds.setFields(new DataSourceField[] {
                new DataSourceTextField(ID),
                new DataSourceTextField(NUMBER_AD),
                new DataSourceTextField(DATE)
        });
        return ds;
    }

private static Record[] createRecordFromAgentAD(List<AgentADBean> agents)
    {
        ArrayList<ListGridRecord> result = new ArrayList<ListGridRecord>();
        for (AgentADBean dogovor : agents)
        {
            ListGridRecord rec = new ListGridRecord();
            rec.setAttribute(ID, dogovor.getDover().getId().toString());
            rec.setAttribute(NUMBER_AD, dogovor.getAd().getNumber());
            rec.setAttribute(DATE, dogovor.getDover().getDate()); //type: Date
            result.add(rec);
        }
        return result.toArray(new ListGridRecord[0]);
    }

//some code to fill agentsList

final ListGrid myGrid= new ListGrid();
myGrid.setWidth(500);
myGrid.setHeight(300);
        myGrid.setShowFilterEditor(true);
        myGrid.setShowHeaderContextMenu(true);
        myGrid.setShowHeaderMenuButton(true);
        myGrid.setShowHeader(true);
        myGrid.setCanResizeFields(true);

        Button button = new Button("");
        button.setTooltip("Filter");
        myGrid.setFilterButtonProperties(button);

myGrid.setDataSource(createDS(agentsList));

ListGridField numberAd = new ListGridField(NUMBER_AD, "Code", 50);
ListGridField dateAd = new ListGridField(DATE, "Date");

myGrid.setFields(numberAd, dateAd);

if I choose the type of DataSourceDateField for my field, the filter for this column will open in a modal window over the period, but I need a simple text search.
As described above in the code search works, but the date in the cell is displayed in the format "dd.mm.yyyy" and the search is on full format "EEE, d MMM yyyy HH: mm: ss Z".

How do I change the date format in the comparison during filtration or change the filter control, if i specify the type DataSourceDateField.

I try to set DateFormatter and DateInputFormat, and DatetimeFormatter - dosn't work.

--------Info-------------
SGWT v 2.7.0
Chrome 42.0.2311.90 m

Sorry for my English is not my native language.

Serverside exceptions using exportClientData (leaking memory?)

$
0
0
Hi Isomorphic,

I got a server exception for a exportClientData request. It *seems* that the exceptions lead to further Java RAM related exceptions in the progress.
Please see these server logs (using v10.0p_2015-04-10):

1st request (null pointer exception in com.isomorphic class):
Code:

=== 2015-04-24 17:39:01,245 [c-39] INFO  RequestContext - URL: '/test/lms/sc/IDACall', User-Agent: 'Mozilla/5.0 (Windows NT 6.3; WOW64; rv:37.0) Gecko/20100101 Firefox/37.0': Moz (Gecko) with Accept-Encoding header
=== 2015-04-24 17:39:01,245 [c-39] DEBUG LMSIDACall - Header Name:Value pair: host:REMOVED
=== 2015-04-24 17:39:01,245 [c-39] DEBUG LMSIDACall - Header Name:Value pair: user-agent:Mozilla/5.0 (Windows NT 6.3; WOW64; rv:37.0) Gecko/20100101 Firefox/37.0
=== 2015-04-24 17:39:01,245 [c-39] DEBUG LMSIDACall - Header Name:Value pair: accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
=== 2015-04-24 17:39:01,245 [c-39] DEBUG LMSIDACall - Header Name:Value pair: Accept-Language:de,en-US;q=0.7,en;q=0.3
=== 2015-04-24 17:39:01,246 [c-39] DEBUG LMSIDACall - Header Name:Value pair: Accept-Encoding:gzip, deflate
=== 2015-04-24 17:39:01,246 [c-39] DEBUG LMSIDACall - Header Name:Value pair: referer:REMOVED
=== 2015-04-24 17:39:01,246 [c-39] DEBUG LMSIDACall - Header Name:Value pair: cookie:JSESSIONID=REMOVED; isc_cState=ready; GLog=REMOVED
=== 2015-04-24 17:39:01,246 [c-39] DEBUG LMSIDACall - Header Name:Value pair: connection:keep-alive
=== 2015-04-24 17:39:01,246 [c-39] DEBUG LMSIDACall - Header Name:Value pair: content-type:application/x-www-form-urlencoded
=== 2015-04-24 17:39:01,246 [c-39] DEBUG LMSIDACall - Header Name:Value pair: content-length:12274
=== 2015-04-24 17:39:01,246 [c-39] DEBUG LMSIDACall - session exists: REMOVED
=== 2015-04-24 17:39:01,246 [c-39] DEBUG LMSIDACall - remote user: csuperuser
=== 2015-04-24 17:39:01,249 [c-39] DEBUG RPCManager - Processing 1 requests.
=== 2015-04-24 17:39:01,249 [c-39] DEBUG RPCManager - Request #1 (RPCRequest) data: {
    appID:"isc_builtin",
    className:"builtin",
    methodName:"downloadClientExport",
    arguments:[
        [
            {
                STATUS_SHORTNAME:"Gepickt",
                leadAction:" ",
                STATUS_RESELLER_ID:"ABC-Softwarehaus GmbH (B)",
                STATUS_RESELLER_ID$style:{
                    rawValue:31
                },
                STATUS_USER_ID:"M. Unmüssig",
                STATUS_USER_ID$style:{
                    rawValue:1094
                },
                PICKED_DATE:"08.04.2015",
                PICKED_DATE$style:{
                    rawValue:new Date(1428504613000),
                    dateFormatter:"toEuropeanShortDate"
                },
                STATUS_STATUSDATE:" ",
                CUST_NAME_CONTACTPERSFULLNAME:"Hopsassa Gmbh (Günther Hopsassa)",
                CAMPAIGN_ID:"Hannover Messe 2015",
                CAMPAIGN_ID$style:{
                    rawValue:59
                },
                LEADTEMPERATURE_ID:"Hot Lead",
                LEADTEMPERATURE_ID$style:{
                    rawValue:17
                },
                LEADTYPE_ID:"Event",
                LEADTYPE_ID$style:{
                    rawValue:22
                },
                STATUS_POTREV_COMPANY:" ",
                STATUS_POTREV_PROJECT:" ",
                CREATED_BY:"K. Kowalski",
                CREATED_BY$style:{
                    rawValue:1083
                },
                CREATED_BY_LEGALENTITYNAME:"OURCOMPANY TESTACCOUNT"
            },
            {
                STATUS_SHORTNAME:"Gepickt",
                leadAction:" ",
                STATUS_RESELLER_ID:"ABC-Softwarehaus GmbH (B)",
                STATUS_RESELLER_ID$style:{
                    rawValue:31
                },
                STATUS_USER_ID:"M. Unmüssig",
                STATUS_USER_ID$style:{
                    rawValue:1094
                },
                PICKED_DATE:"21.01.2015",
                PICKED_DATE$style:{
                    rawValue:new Date(1421830376000),
                    dateFormatter:"toEuropeanShortDate"
                },
                STATUS_STATUSDATE:" ",
                CUST_NAME_CONTACTPERSFULLNAME:"Test gmbh (Test)",
                CAMPAIGN_ID:"Kündiger-Reaktivierung",
                CAMPAIGN_ID$style:{
                    rawValue:50
                },
                LEADTEMPERATURE_ID:"Marketing qualified Lead",
                LEADTEMPERATURE_ID$style:{
                    rawValue:19
                },
                LEADTYPE_ID:" ",
                STATUS_POTREV_COMPANY:" ",
                STATUS_POTREV_PROJECT:" ",
                CREATED_BY:"K. Kowalski",
                CREATED_BY$style:{
                    rawValue:1083
                },
                CREATED_BY_LEGALENTITYNAME:"OURCOMPANY TESTACCOUNT"
            },
            {
                STATUS_SHORTNAME:"Gepickt",
                leadAction:" ",
                STATUS_RESELLER_ID:"Top-Software Reseller UG (MS)",
                STATUS_RESELLER_ID$style:{
                    rawValue:26
                },
                STATUS_USER_ID:"S. Resch",
                STATUS_USER_ID$style:{
                    rawValue:1098
                },
                PICKED_DATE:"26.03.2015",
                PICKED_DATE$style:{
                    rawValue:new Date(1427368899000),
                    dateFormatter:"toEuropeanShortDate"
                },
                STATUS_STATUSDATE:" ",
                CUST_NAME_CONTACTPERSFULLNAME:"tmp Gmbh (Müller)",
                CAMPAIGN_ID:"Cebit Stand 2014",
                CAMPAIGN_ID$style:{
                    rawValue:51
                },
                LEADTEMPERATURE_ID:"Hot Lead",
                LEADTEMPERATURE_ID$style:{
                    rawValue:17
                },
                LEADTYPE_ID:"Trial DL",
                LEADTYPE_ID$style:{
                    rawValue:25
                },
                STATUS_POTREV_COMPANY:" ",
                STATUS_POTREV_PROJECT:" ",
                CREATED_BY:"K. Kowalski",
                CREATED_BY$style:{
                    rawValue:1083
                },
                CREATED_BY_LEGALENTITYNAME:"OURCOMPANY TESTACCOUNT"
            },
            {
                STATUS_SHORTNAME:"Angebot",
                leadAction:" ",
                STATUS_RESELLER_ID:"ABC-Softwarehaus GmbH (B)",
                STATUS_RESELLER_ID$style:{
                    rawValue:31
                },
                STATUS_USER_ID:"M. Unmüssig",
                STATUS_USER_ID$style:{
                    rawValue:1094
                },
                PICKED_DATE:"30.03.2015",
                PICKED_DATE$style:{
                    rawValue:new Date(1427724435000),
                    dateFormatter:"toEuropeanShortDate"
                },
                STATUS_STATUSDATE:"30.04.2015",
                STATUS_STATUSDATE$style:{
                    rawValue:new Date(1430344800000),
                    dateFormatter:null
                },
                CUST_NAME_CONTACTPERSFULLNAME:"tmp gmbh (Heiko Wedemeyer)",
                CAMPAIGN_ID:"Cebit Stand 2014",
                CAMPAIGN_ID$style:{
                    rawValue:51
                },
                LEADTEMPERATURE_ID:"Hot Lead",
                LEADTEMPERATURE_ID$style:{
                    rawValue:17
                },
                LEADTYPE_ID:"Event",
                LEADTYPE_ID$style:{
                    rawValue:22
                },
                STATUS_POTREV_COMPANY:"2.000 €",
                STATUS_POTREV_COMPANY$style:{
                    rawValue:2000
                },
                STATUS_POTREV_PROJECT:" ",
                CREATED_BY:"K. Kowalski",
                CREATED_BY$style:{
                    rawValue:1083
                },
                CREATED_BY_LEGALENTITYNAME:"OURCOMPANY TESTACCOUNT"
            }
        ],
        "ooxml",
        "picked_leads.xlsx",
        "download",
        {
            exportAs:"ooxml",
            exportDisplay:"download",
            exportFilename:"picked_leads.xlsx",
            exportPath:null,
            exportToClient:null,
            exportToFilesystem:null,
            exportDelimiter:null,
            exportFields:[
                "leadAction",
                "STATUS_RESELLER_ID",
                "STATUS_USER_ID",
                "PICKED_DATE",
                "STATUS_STATUSDATE",
                "CUST_NAME_CONTACTPERSFULLNAME",
                "CAMPAIGN_ID",
                "LEADTEMPERATURE_ID",
                "LEADTYPE_ID",
                "STATUS_POTREV_COMPANY",
                "STATUS_POTREV_PROJECT",
                "CREATED_BY",
                "CREATED_BY_LEGALENTITYNAME"
            ],
            exportHeader:null,
            exportHeaderless:null,
            exportFooter:null,
            exportTitleSeparatorChar:null,
            exportDefaultBGColor:null,
            exportAlternateRowBGColor:null,
            exportRowBGColors:{
            },
            exportColumnBGColors:{
            },
            exportRawValues:false,
            exportCurrencySymbol:"€",
            lineBreakStyle:null,
            exportOtherFields:{
                leadAction:"Aktionen",
                STATUS_RESELLER_ID:"Gepickt von Firma",
                STATUS_USER_ID:"Gepickt von Benutzer",
                PICKED_DATE:"Gepickt am",
                STATUS_STATUSDATE:"Statusdatum",
                CUST_NAME_CONTACTPERSFULLNAME:"Ansprechpartner",
                CAMPAIGN_ID:"Kampagne",
                LEADTEMPERATURE_ID:"Leadtemperatur",
                LEADTYPE_ID:"Leadtyp",
                STATUS_POTREV_COMPANY:"Anteil Kunde (netto)",
                STATUS_POTREV_PROJECT:"Umfang Gesamtprojekt (netto)",
                CREATED_BY:"Erst. v. (User)",
                CREATED_BY_LEGALENTITYNAME:"Erst. v. (Firma)"
            },
            exportWrapHeaderTitles:null
        }
    ],
    is_ISC_RPC_DMI:true
}
=== 2015-04-24 17:39:01,250 [c-39] INFO  LMSIDACall - Performing 1 operation(s)
=== 2015-04-24 17:39:01,258 [c-39] DEBUG RPCDMI - appConfig: isc.Application.create({
    rpcBindings:[
        {
            ID:"builtin",
            className:"com.isomorphic.rpc.BuiltinRPC",
            visibleMethods:[
                {
                    name:"downloadWSDL"
                },
                {
                    name:"downloadClientContent"
                },
                {
                    name:"downloadClientExport"
                },
                {
                    name:"xmlToJS"
                },
                {
                    name:"uploadProgressCheck"
                },
                {
                    name:"saveFile"
                },
                {
                    name:"appendToFile"
                },
                {
                    name:"loadFile"
                },
                {
                    name:"deleteFile"
                },
                {
                    name:"loadSharedXML"
                },
                {
                    name:"saveSharedXML"
                },
                {
                    name:"getAvailableScriptEngines"
                },
                {
                    name:"devConsoleEvalServerScript"
                },
                {
                    name:"evalJava"
                },
                {
                    name:"getLogNames"
                },
                {
                    name:"getLogEntries"
                },
                {
                    name:"clearLogEntries"
                },
                {
                    name:"getLogThresholds"
                },
                {
                    name:"setLogThreshold"
                },
                {
                    name:"setTemporaryLogThreshold"
                },
                {
                    name:"revertTemporaryLogThresholds"
                },
                {
                    name:"getPdfObject"
                },
                {
                    name:"exportImage"
                },
                {
                    name:"areServerTimingsTracked"
                },
                {
                    name:"trackServerTimings"
                }
            ]
        },
        {
            ID:"builtin_tools",
            className:"com.isomorphic.tools.BuiltinRPC",
            visibleMethods:[
                {
                    name:"getDataSourceFromTable"
                },
                {
                    name:"getDataSourceJSONFromTable"
                },
                {
                    name:"getDataSourceFromHibernateMapping"
                },
                {
                    name:"getDataSourceJSONFromHibernateMapping"
                },
                {
                    name:"getTables"
                },
                {
                    name:"getFieldsFromTable"
                },
                {
                    name:"getBeanFields"
                },
                {
                    name:"getHibernateBeans"
                },
                {
                    name:"getDatabaseProductNameAndVersion"
                },
                {
                    name:"getDatabaseTableTypes"
                },
                {
                    name:"setAttributes"
                },
                {
                    name:"clearAttributes"
                },
                {
                    name:"getAttributes"
                },
                {
                    name:"getAttribute"
                },
                {
                    name:"getDataSourceConfigFromJavaClass"
                },
                {
                    args:"cName",
                    language:"groovy",
                    name:"getJavaSource",
                    script:"\n                    if (!com.isomorphic.auth.DevModeAuthFilter.devModeAuthorized(request)) throw new Exception(\"Not Authorized\");                    \n                    //import org.apache.bcel.Repository;\n\n                    try {\n                        return org.apache.bcel.Repository.lookupClass(cName).toString();\n                    } catch (Throwable e) {\n                        return \"Unable to reverse engineer class \"+cName+\": \"+e.getMessage();\n                    }\n                "
                },
                {
                    name:"loadDataSource"
                },
                {
                    name:"dsFromXML"
                },
                {
                    name:"dsConfigFromXML"
                },
                {
                    name:"getDefinedDataSources"
                }
            ]
        },
        {
            ID:"builtin_adminconsole",
            className:"com.isomorphic.tools.AdminConsole",
            visibleMethods:[
                {
                    name:"getDefinedDatabases"
                },
                {
                    name:"testDB"
                },
                {
                    name:"saveDBConfig"
                },
                {
                    name:"setDefaultDB"
                },
                {
                    name:"importDataSources"
                },
                {
                    name:"discoverJNDIDatabases"
                }
            ]
        }
    ]
})

=== 2015-04-24 17:39:01,261 [c-39] INFO  BuiltinRPC - Export data passed to server:
[
    {
        STATUS_SHORTNAME:"Gepickt",
        leadAction:" ",
        STATUS_RESELLER_ID:"ABC-Softwarehaus GmbH (B)",
        STATUS_RESELLER_ID$style:{
            rawValue:31
        },
        STATUS_USER_ID:"M. Unmüssig",
        STATUS_USER_ID$style:{
            rawValue:1094
        },
        PICKED_DATE:"08.04.2015",
        PICKED_DATE$style:{
            rawValue:new Date(1428504613000),
            dateFormatter:"toEuropeanShortDate"
        },
        STATUS_STATUSDATE:" ",
        CUST_NAME_CONTACTPERSFULLNAME:"Hopsassa Gmbh (Günther Hopsassa)",
        CAMPAIGN_ID:"Hannover Messe 2015",
        CAMPAIGN_ID$style:{
            rawValue:59
        },
        LEADTEMPERATURE_ID:"Hot Lead",
        LEADTEMPERATURE_ID$style:{
            rawValue:17
        },
        LEADTYPE_ID:"Event",
        LEADTYPE_ID$style:{
            rawValue:22
        },
        STATUS_POTREV_COMPANY:" ",
        STATUS_POTREV_PROJECT:" ",
        CREATED_BY:"K. Kowalski",
        CREATED_BY$style:{
            rawValue:1083
        },
        CREATED_BY_LEGALENTITYNAME:"OURCOMPANY TESTACCOUNT"
    },
    {
        STATUS_SHORTNAME:"Gepickt",
        leadAction:" ",
        STATUS_RESELLER_ID:"ABC-Softwarehaus GmbH (B)",
        STATUS_RESELLER_ID$style:{
            rawValue:31
        },
        STATUS_USER_ID:"M. Unmüssig",
        STATUS_USER_ID$style:{
            rawValue:1094
        },
        PICKED_DATE:"21.01.2015",
        PICKED_DATE$style:{
            rawValue:new Date(1421830376000),
            dateFormatter:"toEuropeanShortDate"
        },
        STATUS_STATUSDATE:" ",
        CUST_NAME_CONTACTPERSFULLNAME:"Test gmbh (Test)",
        CAMPAIGN_ID:"Kündiger-Reaktivierung",
        CAMPAIGN_ID$style:{
            rawValue:50
        },
        LEADTEMPERATURE_ID:"Marketing qualified Lead",
        LEADTEMPERATURE_ID$style:{
            rawValue:19
        },
        LEADTYPE_ID:" ",
        STATUS_POTREV_COMPANY:" ",
        STATUS_POTREV_PROJECT:" ",
        CREATED_BY:"K. Kowalski",
        CREATED_BY$style:{
            rawValue:1083
        },
        CREATED_BY_LEGALENTITYNAME:"OURCOMPANY TESTACCOUNT"
    },
    {
        STATUS_SHORTNAME:"Gepickt",
        leadAction:" ",
        STATUS_RESELLER_ID:"Top-Software Reseller UG (MS)",
        STATUS_RESELLER_ID$style:{
            rawValue:26
        },
        STATUS_USER_ID:"S. Resch",
        STATUS_USER_ID$style:{
            rawValue:1098
        },
        PICKED_DATE:"26.03.2015",
        PICKED_DATE$style:{
            rawValue:new Date(1427368899000),
            dateFormatter:"toEuropeanShortDate"
        },
        STATUS_STATUSDATE:" ",
        CUST_NAME_CONTACTPERSFULLNAME:"tmp Gmbh (Müller)",
        CAMPAIGN_ID:"Cebit Stand 2014",
        CAMPAIGN_ID$style:{
            rawValue:51
        },
        LEADTEMPERATURE_ID:"Hot Lead",
        LEADTEMPERATURE_ID$style:{
            rawValue:17
        },
        LEADTYPE_ID:"Trial DL",
        LEADTYPE_ID$style:{
            rawValue:25
        },
        STATUS_POTREV_COMPANY:" ",
        STATUS_POTREV_PROJECT:" ",
        CREATED_BY:"K. Kowalski",
        CREATED_BY$style:{
            rawValue:1083
        },
        CREATED_BY_LEGALENTITYNAME:"OURCOMPANY TESTACCOUNT"
    },
    {
        STATUS_SHORTNAME:"Angebot",
        leadAction:" ",
        STATUS_RESELLER_ID:"ABC-Softwarehaus GmbH (B)",
        STATUS_RESELLER_ID$style:{
            rawValue:31
        },
        STATUS_USER_ID:"M. Unmüssig",
        STATUS_USER_ID$style:{
            rawValue:1094
        },
        PICKED_DATE:"30.03.2015",
        PICKED_DATE$style:{
            rawValue:new Date(1427724435000),
            dateFormatter:"toEuropeanShortDate"
        },
        STATUS_STATUSDATE:"30.04.2015",
        STATUS_STATUSDATE$style:{
            rawValue:new Date(1430344800000),
            dateFormatter:null
        },
        CUST_NAME_CONTACTPERSFULLNAME:"tmp gmbh (Heiko Wedemeyer)",
        CAMPAIGN_ID:"Cebit Stand 2014",
        CAMPAIGN_ID$style:{
            rawValue:51
        },
        LEADTEMPERATURE_ID:"Hot Lead",
        LEADTEMPERATURE_ID$style:{
            rawValue:17
        },
        LEADTYPE_ID:"Event",
        LEADTYPE_ID$style:{
            rawValue:22
        },
        STATUS_POTREV_COMPANY:"2.000 €",
        STATUS_POTREV_COMPANY$style:{
            rawValue:2000
        },
        STATUS_POTREV_PROJECT:" ",
        CREATED_BY:"K. Kowalski",
        CREATED_BY$style:{
            rawValue:1083
        },
        CREATED_BY_LEGALENTITYNAME:"OURCOMPANY TESTACCOUNT"
    }
]
=== 2015-04-24 17:39:01,263 [c-39] INFO  ProxyHttpServletResponse - content-disposition set to: attachment; fileName=picked_leads.xlsx - unwrapping response output stream (CompressionFilter)
=== 2015-04-24 17:39:01,263 [c-39] DEBUG ConfigParser - Matched var name: webRoot
=== 2015-04-24 17:39:01,264 [c-39] DEBUG ConfigParser - value after substitution: /usr/share/apache-tomcat-7.0.53/lms_test/test
=== 2015-04-24 17:39:01,264 [c-39] INFO  BuiltinRPC - Generating and streaming ooxml file...
=== 2015-04-24 17:39:02,952 [c-39] WARN  BuiltinRPC - Exception during export - continuing anyway to avoid sending the client to a blank screen
java.lang.NullPointerException
        at com.isomorphic.rpc.ExcelDataExport.writeExportObject(ExcelDataExport.java:1313)
        at com.isomorphic.rpc.DataExport.exportResultSet(DataExport.java:640)
        at com.isomorphic.rpc.DataExport.exportResultSet(DataExport.java:460)
        at com.isomorphic.rpc.BuiltinRPC.downloadClientExport(BuiltinRPC.java:850)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at com.isomorphic.base.Reflection.adaptArgsAndInvoke(Reflection.java:975)
        at com.isomorphic.base.Reflection.adaptArgsAndInvoke(Reflection.java:805)
        at com.isomorphic.rpc.RPCDMI.execute(RPCDMI.java:309)
        at com.isomorphic.rpc.RPCDMI.execute(RPCDMI.java:66)
        at com.isomorphic.rpc.RPCRequest.execute(RPCRequest.java:231)
        at com.isomorphic.servlet.IDACall.handleRPCRequest(IDACall.java:328)
        at com.isomorphic.servlet.IDACall.processRPCTransaction(IDACall.java:182)
        at com.lmscompany.lms.server.LMSIDACall.processRequest(LMSIDACall.java:40)
        at com.isomorphic.servlet.IDACall._processRequest(IDACall.java:117)
        at com.isomorphic.servlet.IDACall.doPost(IDACall.java:76)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:646)
        at com.isomorphic.servlet.BaseServlet.service(BaseServlet.java:156)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
        at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
        at com.isomorphic.servlet.CompressionFilter._doFilter(CompressionFilter.java:260)
        at com.isomorphic.servlet.BaseFilter.doFilter(BaseFilter.java:83)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:610)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
        at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
        at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:193)
        at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607)
        at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:313)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:744)
=== 2015-04-24 17:39:02,953 [c-39] DEBUG RPCDMI - rpc returned data

2nd request (null pointer exception in com.isomorphic class):
Code:

=== 2015-04-24 17:39:03,616 [c-56] INFO  RequestContext - URL: '/test/lms/sc/IDACall', User-Agent: 'Mozilla/5.0 (Windows NT 6.3; WOW64; rv:37.0) Gecko/20100101 Firefox/37.0': Moz (Gecko) with Accept-Encoding header
=== 2015-04-24 17:39:03,616 [c-56] DEBUG LMSIDACall - Header Name:Value pair: host:REMOVED
=== 2015-04-24 17:39:03,616 [c-56] DEBUG LMSIDACall - Header Name:Value pair: user-agent:Mozilla/5.0 (Windows NT 6.3; WOW64; rv:37.0) Gecko/20100101 Firefox/37.0
=== 2015-04-24 17:39:03,616 [c-56] DEBUG LMSIDACall - Header Name:Value pair: accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
=== 2015-04-24 17:39:03,616 [c-56] DEBUG LMSIDACall - Header Name:Value pair: Accept-Language:de,en-US;q=0.7,en;q=0.3
=== 2015-04-24 17:39:03,616 [c-56] DEBUG LMSIDACall - Header Name:Value pair: Accept-Encoding:gzip, deflate
=== 2015-04-24 17:39:03,616 [c-56] DEBUG LMSIDACall - Header Name:Value pair: referer:REMOVED
=== 2015-04-24 17:39:03,616 [c-56] DEBUG LMSIDACall - Header Name:Value pair: cookie:JSESSIONID=REMOVED; isc_cState=ready; GLog=REMOVED
=== 2015-04-24 17:39:03,616 [c-56] DEBUG LMSIDACall - Header Name:Value pair: connection:keep-alive
=== 2015-04-24 17:39:03,616 [c-56] DEBUG LMSIDACall - Header Name:Value pair: content-type:application/x-www-form-urlencoded
=== 2015-04-24 17:39:03,616 [c-56] DEBUG LMSIDACall - Header Name:Value pair: content-length:12274
=== 2015-04-24 17:39:03,616 [c-56] DEBUG LMSIDACall - session exists: REMOVED
=== 2015-04-24 17:39:03,616 [c-56] DEBUG LMSIDACall - remote user: csuperuser
=== 2015-04-24 17:39:03,620 [c-56] DEBUG RPCManager - Processing 1 requests.
=== 2015-04-24 17:39:03,620 [c-56] DEBUG RPCManager - Request #1 (RPCRequest) data: {
    appID:"isc_builtin",
    className:"builtin",
    methodName:"downloadClientExport",
    arguments:[
        [
            {
                STATUS_SHORTNAME:"Gepickt",
                leadAction:" ",
                STATUS_RESELLER_ID:"ABC-Softwarehaus GmbH (B)",
                STATUS_RESELLER_ID$style:{
                    rawValue:31
                },
                STATUS_USER_ID:"M. Unmüssig",
                STATUS_USER_ID$style:{
                    rawValue:1094
                },
                PICKED_DATE:"08.04.2015",
                PICKED_DATE$style:{
                    rawValue:new Date(1428504613000),
                    dateFormatter:"toEuropeanShortDate"
                },
                STATUS_STATUSDATE:" ",
                CUST_NAME_CONTACTPERSFULLNAME:"Hopsassa Gmbh (Günther Hopsassa)",
                CAMPAIGN_ID:"Hannover Messe 2015",
                CAMPAIGN_ID$style:{
                    rawValue:59
                },
                LEADTEMPERATURE_ID:"Hot Lead",
                LEADTEMPERATURE_ID$style:{
                    rawValue:17
                },
                LEADTYPE_ID:"Event",
                LEADTYPE_ID$style:{
                    rawValue:22
                },
                STATUS_POTREV_COMPANY:" ",
                STATUS_POTREV_PROJECT:" ",
                CREATED_BY:"K. Kowalski",
                CREATED_BY$style:{
                    rawValue:1083
                },
                CREATED_BY_LEGALENTITYNAME:"OURCOMPANY TESTACCOUNT"
            },
            {
                STATUS_SHORTNAME:"Gepickt",
                leadAction:" ",
                STATUS_RESELLER_ID:"ABC-Softwarehaus GmbH (B)",
                STATUS_RESELLER_ID$style:{
                    rawValue:31
                },
                STATUS_USER_ID:"M. Unmüssig",
                STATUS_USER_ID$style:{
                    rawValue:1094
                },
                PICKED_DATE:"21.01.2015",
                PICKED_DATE$style:{
                    rawValue:new Date(1421830376000),
                    dateFormatter:"toEuropeanShortDate"
                },
                STATUS_STATUSDATE:" ",
                CUST_NAME_CONTACTPERSFULLNAME:"Test gmbh (Test)",
                CAMPAIGN_ID:"Kündiger-Reaktivierung",
                CAMPAIGN_ID$style:{
                    rawValue:50
                },
                LEADTEMPERATURE_ID:"Marketing qualified Lead",
                LEADTEMPERATURE_ID$style:{
                    rawValue:19
                },
                LEADTYPE_ID:" ",
                STATUS_POTREV_COMPANY:" ",
                STATUS_POTREV_PROJECT:" ",
                CREATED_BY:"K. Kowalski",
                CREATED_BY$style:{
                    rawValue:1083
                },
                CREATED_BY_LEGALENTITYNAME:"OURCOMPANY TESTACCOUNT"
            },
            {
                STATUS_SHORTNAME:"Gepickt",
                leadAction:" ",
                STATUS_RESELLER_ID:"Top-Software Reseller UG (MS)",
                STATUS_RESELLER_ID$style:{
                    rawValue:26
                },
                STATUS_USER_ID:"S. Resch",
                STATUS_USER_ID$style:{
                    rawValue:1098
                },
                PICKED_DATE:"26.03.2015",
                PICKED_DATE$style:{
                    rawValue:new Date(1427368899000),
                    dateFormatter:"toEuropeanShortDate"
                },
                STATUS_STATUSDATE:" ",
                CUST_NAME_CONTACTPERSFULLNAME:"tmp Gmbh (Müller)",
                CAMPAIGN_ID:"Cebit Stand 2014",
                CAMPAIGN_ID$style:{
                    rawValue:51
                },
                LEADTEMPERATURE_ID:"Hot Lead",
                LEADTEMPERATURE_ID$style:{
                    rawValue:17
                },
                LEADTYPE_ID:"Trial DL",
                LEADTYPE_ID$style:{
                    rawValue:25
                },
                STATUS_POTREV_COMPANY:" ",
                STATUS_POTREV_PROJECT:" ",
                CREATED_BY:"K. Kowalski",
                CREATED_BY$style:{
                    rawValue:1083
                },
                CREATED_BY_LEGALENTITYNAME:"OURCOMPANY TESTACCOUNT"
            },
            {
                STATUS_SHORTNAME:"Angebot",
                leadAction:" ",
                STATUS_RESELLER_ID:"ABC-Softwarehaus GmbH (B)",
                STATUS_RESELLER_ID$style:{
                    rawValue:31
                },
                STATUS_USER_ID:"M. Unmüssig",
                STATUS_USER_ID$style:{
                    rawValue:1094
                },
                PICKED_DATE:"30.03.2015",
                PICKED_DATE$style:{
                    rawValue:new Date(1427724435000),
                    dateFormatter:"toEuropeanShortDate"
                },
                STATUS_STATUSDATE:"30.04.2015",
                STATUS_STATUSDATE$style:{
                    rawValue:new Date(1430344800000),
                    dateFormatter:null
                },
                CUST_NAME_CONTACTPERSFULLNAME:"tmp gmbh (Heiko Wedemeyer)",
                CAMPAIGN_ID:"Cebit Stand 2014",
                CAMPAIGN_ID$style:{
                    rawValue:51
                },
                LEADTEMPERATURE_ID:"Hot Lead",
                LEADTEMPERATURE_ID$style:{
                    rawValue:17
                },
                LEADTYPE_ID:"Event",
                LEADTYPE_ID$style:{
                    rawValue:22
                },
                STATUS_POTREV_COMPANY:"2.000 €",
                STATUS_POTREV_COMPANY$style:{
                    rawValue:2000
                },
                STATUS_POTREV_PROJECT:" ",
                CREATED_BY:"K. Kowalski",
                CREATED_BY$style:{
                    rawValue:1083
                },
                CREATED_BY_LEGALENTITYNAME:"OURCOMPANY TESTACCOUNT"
            }
        ],
        "ooxml",
        "picked_leads.xlsx",
        "download",
        {
            exportAs:"ooxml",
            exportDisplay:"download",
            exportFilename:"picked_leads.xlsx",
            exportPath:null,
            exportToClient:null,
            exportToFilesystem:null,
            exportDelimiter:null,
            exportFields:[
                "leadAction",
                "STATUS_RESELLER_ID",
                "STATUS_USER_ID",
                "PICKED_DATE",
                "STATUS_STATUSDATE",
                "CUST_NAME_CONTACTPERSFULLNAME",
                "CAMPAIGN_ID",
                "LEADTEMPERATURE_ID",
                "LEADTYPE_ID",
                "STATUS_POTREV_COMPANY",
                "STATUS_POTREV_PROJECT",
                "CREATED_BY",
                "CREATED_BY_LEGALENTITYNAME"
            ],
            exportHeader:null,
            exportHeaderless:null,
            exportFooter:null,
            exportTitleSeparatorChar:null,
            exportDefaultBGColor:null,
            exportAlternateRowBGColor:null,
            exportRowBGColors:{
            },
            exportColumnBGColors:{
            },
            exportRawValues:false,
            exportCurrencySymbol:"€",
            lineBreakStyle:null,
            exportOtherFields:{
                leadAction:"Aktionen",
                STATUS_RESELLER_ID:"Gepickt von Firma",
                STATUS_USER_ID:"Gepickt von Benutzer",
                PICKED_DATE:"Gepickt am",
                STATUS_STATUSDATE:"Statusdatum",
                CUST_NAME_CONTACTPERSFULLNAME:"Ansprechpartner",
                CAMPAIGN_ID:"Kampagne",
                LEADTEMPERATURE_ID:"Leadtemperatur",
                LEADTYPE_ID:"Leadtyp",
                STATUS_POTREV_COMPANY:"Anteil Kunde (netto)",
                STATUS_POTREV_PROJECT:"Umfang Gesamtprojekt (netto)",
                CREATED_BY:"Erst. v. (User)",
                CREATED_BY_LEGALENTITYNAME:"Erst. v. (Firma)"
            },
            exportWrapHeaderTitles:null
        }
    ],
    is_ISC_RPC_DMI:true
}
=== 2015-04-24 17:39:03,620 [c-56] INFO  LMSIDACall - Performing 1 operation(s)
=== 2015-04-24 17:39:03,621 [c-56] DEBUG RPCDMI - appConfig: isc.Application.create({
    rpcBindings:[
        {
            ID:"builtin",
            className:"com.isomorphic.rpc.BuiltinRPC",
            visibleMethods:[
                {
                    name:"downloadWSDL"
                },
                {
                    name:"downloadClientContent"
                },
                {
                    name:"downloadClientExport"
                },
                {
                    name:"xmlToJS"
                },
                {
                    name:"uploadProgressCheck"
                },
                {
                    name:"saveFile"
                },
                {
                    name:"appendToFile"
                },
                {
                    name:"loadFile"
                },
                {
                    name:"deleteFile"
                },
                {
                    name:"loadSharedXML"
                },
                {
                    name:"saveSharedXML"
                },
                {
                    name:"getAvailableScriptEngines"
                },
                {
                    name:"devConsoleEvalServerScript"
                },
                {
                    name:"evalJava"
                },
                {
                    name:"getLogNames"
                },
                {
                    name:"getLogEntries"
                },
                {
                    name:"clearLogEntries"
                },
                {
                    name:"getLogThresholds"
                },
                {
                    name:"setLogThreshold"
                },
                {
                    name:"setTemporaryLogThreshold"
                },
                {
                    name:"revertTemporaryLogThresholds"
                },
                {
                    name:"getPdfObject"
                },
                {
                    name:"exportImage"
                },
                {
                    name:"areServerTimingsTracked"
                },
                {
                    name:"trackServerTimings"
                }
            ]
        },
        {
            ID:"builtin_tools",
            className:"com.isomorphic.tools.BuiltinRPC",
            visibleMethods:[
                {
                    name:"getDataSourceFromTable"
                },
                {
                    name:"getDataSourceJSONFromTable"
                },
                {
                    name:"getDataSourceFromHibernateMapping"
                },
                {
                    name:"getDataSourceJSONFromHibernateMapping"
                },
                {
                    name:"getTables"
                },
                {
                    name:"getFieldsFromTable"
                },
                {
                    name:"getBeanFields"
                },
                {
                    name:"getHibernateBeans"
                },
                {
                    name:"getDatabaseProductNameAndVersion"
                },
                {
                    name:"getDatabaseTableTypes"
                },
                {
                    name:"setAttributes"
                },
                {
                    name:"clearAttributes"
                },
                {
                    name:"getAttributes"
                },
                {
                    name:"getAttribute"
                },
                {
                    name:"getDataSourceConfigFromJavaClass"
                },
                {
                    args:"cName",
                    language:"groovy",
                    name:"getJavaSource",
                    script:"\n                    if (!com.isomorphic.auth.DevModeAuthFilter.devModeAuthorized(request)) throw new Exception(\"Not Authorized\");                    \n                    //import org.apache.bcel.Repository;\n\n                    try {\n                        return org.apache.bcel.Repository.lookupClass(cName).toString();\n                    } catch (Throwable e) {\n                        return \"Unable to reverse engineer class \"+cName+\": \"+e.getMessage();\n                    }\n                "
                },
                {
                    name:"loadDataSource"
                },
                {
                    name:"dsFromXML"
                },
                {
                    name:"dsConfigFromXML"
                },
                {
                    name:"getDefinedDataSources"
                }
            ]
        },
        {
            ID:"builtin_adminconsole",
            className:"com.isomorphic.tools.AdminConsole",
            visibleMethods:[
                {
                    name:"getDefinedDatabases"
                },
                {
                    name:"testDB"
                },
                {
                    name:"saveDBConfig"
                },
                {
                    name:"setDefaultDB"
                },
                {
                    name:"importDataSources"
                },
                {
                    name:"discoverJNDIDatabases"
                }
            ]
        }
    ]
})

=== 2015-04-24 17:39:03,622 [c-56] INFO  BuiltinRPC - Export data passed to server:
[
    {
        STATUS_SHORTNAME:"Gepickt",
        leadAction:" ",
        STATUS_RESELLER_ID:"ABC-Softwarehaus GmbH (B)",
        STATUS_RESELLER_ID$style:{
            rawValue:31
        },
        STATUS_USER_ID:"M. Unmüssig",
        STATUS_USER_ID$style:{
            rawValue:1094
        },
        PICKED_DATE:"08.04.2015",
        PICKED_DATE$style:{
            rawValue:new Date(1428504613000),
            dateFormatter:"toEuropeanShortDate"
        },
        STATUS_STATUSDATE:" ",
        CUST_NAME_CONTACTPERSFULLNAME:"Hopsassa Gmbh (Günther Hopsassa)",
        CAMPAIGN_ID:"Hannover Messe 2015",
        CAMPAIGN_ID$style:{
            rawValue:59
        },
        LEADTEMPERATURE_ID:"Hot Lead",
        LEADTEMPERATURE_ID$style:{
            rawValue:17
        },
        LEADTYPE_ID:"Event",
        LEADTYPE_ID$style:{
            rawValue:22
        },
        STATUS_POTREV_COMPANY:" ",
        STATUS_POTREV_PROJECT:" ",
        CREATED_BY:"K. Kowalski",
        CREATED_BY$style:{
            rawValue:1083
        },
        CREATED_BY_LEGALENTITYNAME:"OURCOMPANY TESTACCOUNT"
    },
    {
        STATUS_SHORTNAME:"Gepickt",
        leadAction:" ",
        STATUS_RESELLER_ID:"ABC-Softwarehaus GmbH (B)",
        STATUS_RESELLER_ID$style:{
            rawValue:31
        },
        STATUS_USER_ID:"M. Unmüssig",
        STATUS_USER_ID$style:{
            rawValue:1094
        },
        PICKED_DATE:"21.01.2015",
        PICKED_DATE$style:{
            rawValue:new Date(1421830376000),
            dateFormatter:"toEuropeanShortDate"
        },
        STATUS_STATUSDATE:" ",
        CUST_NAME_CONTACTPERSFULLNAME:"Test gmbh (Test)",
        CAMPAIGN_ID:"Kündiger-Reaktivierung",
        CAMPAIGN_ID$style:{
            rawValue:50
        },
        LEADTEMPERATURE_ID:"Marketing qualified Lead",
        LEADTEMPERATURE_ID$style:{
            rawValue:19
        },
        LEADTYPE_ID:" ",
        STATUS_POTREV_COMPANY:" ",
        STATUS_POTREV_PROJECT:" ",
        CREATED_BY:"K. Kowalski",
        CREATED_BY$style:{
            rawValue:1083
        },
        CREATED_BY_LEGALENTITYNAME:"OURCOMPANY TESTACCOUNT"
    },
    {
        STATUS_SHORTNAME:"Gepickt",
        leadAction:" ",
        STATUS_RESELLER_ID:"Top-Software Reseller UG (MS)",
        STATUS_RESELLER_ID$style:{
            rawValue:26
        },
        STATUS_USER_ID:"S. Resch",
        STATUS_USER_ID$style:{
            rawValue:1098
        },
        PICKED_DATE:"26.03.2015",
        PICKED_DATE$style:{
            rawValue:new Date(1427368899000),
            dateFormatter:"toEuropeanShortDate"
        },
        STATUS_STATUSDATE:" ",
        CUST_NAME_CONTACTPERSFULLNAME:"tmp Gmbh (Müller)",
        CAMPAIGN_ID:"Cebit Stand 2014",
        CAMPAIGN_ID$style:{
            rawValue:51
        },
        LEADTEMPERATURE_ID:"Hot Lead",
        LEADTEMPERATURE_ID$style:{
            rawValue:17
        },
        LEADTYPE_ID:"Trial DL",
        LEADTYPE_ID$style:{
            rawValue:25
        },
        STATUS_POTREV_COMPANY:" ",
        STATUS_POTREV_PROJECT:" ",
        CREATED_BY:"K. Kowalski",
        CREATED_BY$style:{
            rawValue:1083
        },
        CREATED_BY_LEGALENTITYNAME:"OURCOMPANY TESTACCOUNT"
    },
    {
        STATUS_SHORTNAME:"Angebot",
        leadAction:" ",
        STATUS_RESELLER_ID:"ABC-Softwarehaus GmbH (B)",
        STATUS_RESELLER_ID$style:{
            rawValue:31
        },
        STATUS_USER_ID:"M. Unmüssig",
        STATUS_USER_ID$style:{
            rawValue:1094
        },
        PICKED_DATE:"30.03.2015",
        PICKED_DATE$style:{
            rawValue:new Date(1427724435000),
            dateFormatter:"toEuropeanShortDate"
        },
        STATUS_STATUSDATE:"30.04.2015",
        STATUS_STATUSDATE$style:{
            rawValue:new Date(1430344800000),
            dateFormatter:null
        },
        CUST_NAME_CONTACTPERSFULLNAME:"tmp gmbh (Heiko Wedemeyer)",
        CAMPAIGN_ID:"Cebit Stand 2014",
        CAMPAIGN_ID$style:{
            rawValue:51
        },
        LEADTEMPERATURE_ID:"Hot Lead",
        LEADTEMPERATURE_ID$style:{
            rawValue:17
        },
        LEADTYPE_ID:"Event",
        LEADTYPE_ID$style:{
            rawValue:22
        },
        STATUS_POTREV_COMPANY:"2.000 €",
        STATUS_POTREV_COMPANY$style:{
            rawValue:2000
        },
        STATUS_POTREV_PROJECT:" ",
        CREATED_BY:"K. Kowalski",
        CREATED_BY$style:{
            rawValue:1083
        },
        CREATED_BY_LEGALENTITYNAME:"OURCOMPANY TESTACCOUNT"
    }
]
=== 2015-04-24 17:39:03,622 [c-56] INFO  ProxyHttpServletResponse - content-disposition set to: attachment; fileName=picked_leads.xlsx - unwrapping response output stream (CompressionFilter)
=== 2015-04-24 17:39:03,622 [c-56] INFO  BuiltinRPC - Generating and streaming ooxml file...
=== 2015-04-24 17:39:03,623 [c-56] WARN  BuiltinRPC - Exception during export - continuing anyway to avoid sending the client to a blank screen
java.lang.NullPointerException
        at com.isomorphic.rpc.ExcelDataExport.writeExportObject(ExcelDataExport.java:1313)
        at com.isomorphic.rpc.DataExport.exportResultSet(DataExport.java:640)
        at com.isomorphic.rpc.DataExport.exportResultSet(DataExport.java:460)
        at com.isomorphic.rpc.BuiltinRPC.downloadClientExport(BuiltinRPC.java:850)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at com.isomorphic.base.Reflection.adaptArgsAndInvoke(Reflection.java:975)
        at com.isomorphic.base.Reflection.adaptArgsAndInvoke(Reflection.java:805)
        at com.isomorphic.rpc.RPCDMI.execute(RPCDMI.java:309)
        at com.isomorphic.rpc.RPCDMI.execute(RPCDMI.java:66)
        at com.isomorphic.rpc.RPCRequest.execute(RPCRequest.java:231)
        at com.isomorphic.servlet.IDACall.handleRPCRequest(IDACall.java:328)
        at com.isomorphic.servlet.IDACall.processRPCTransaction(IDACall.java:182)
        at com.lmscompany.lms.server.LMSIDACall.processRequest(LMSIDACall.java:40)
        at com.isomorphic.servlet.IDACall._processRequest(IDACall.java:117)
        at com.isomorphic.servlet.IDACall.doPost(IDACall.java:76)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:646)
        at com.isomorphic.servlet.BaseServlet.service(BaseServlet.java:156)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
        at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
        at com.isomorphic.servlet.CompressionFilter._doFilter(CompressionFilter.java:260)
        at com.isomorphic.servlet.BaseFilter.doFilter(BaseFilter.java:83)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:610)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
        at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
        at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:193)
        at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607)
        at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:313)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:744)
=== 2015-04-24 17:39:03,624 [c-56] DEBUG RPCDMI - rpc returned data

I put both request logs in WinMerge - they are the same besides the timestamp. I don't know what happened here. For some seconds, other requests are processed normally, but then the logs are full of "java.lang.Exception: java.lang.OutOfMemoryError: PermGen space".
The two requests I have shown are the first ones in today's logs (after 17 hours) resulting in a Java exceptions - operations were normal before.

1st out of memory request:
Code:

=== 2015-04-24 17:40:08,380 [c-31] INFO  RequestContext - URL: '/test/lms/sc/IDACall', User-Agent: 'Mozilla/5.0 (Windows NT 6.3; WOW64; rv:37.0) Gecko/20100101 Firefox/37.0': Moz (Gecko) with Accept-Encoding header
=== 2015-04-24 17:40:08,380 [c-31] DEBUG LMSIDACall - Header Name:Value pair: host:REMOVED
=== 2015-04-24 17:40:08,380 [c-31] DEBUG LMSIDACall - Header Name:Value pair: user-agent:Mozilla/5.0 (Windows NT 6.3; WOW64; rv:37.0) Gecko/20100101 Firefox/37.0
=== 2015-04-24 17:40:08,380 [c-31] DEBUG LMSIDACall - Header Name:Value pair: accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
=== 2015-04-24 17:40:08,380 [c-31] DEBUG LMSIDACall - Header Name:Value pair: Accept-Language:de,en-US;q=0.7,en;q=0.3
=== 2015-04-24 17:40:08,380 [c-31] DEBUG LMSIDACall - Header Name:Value pair: Accept-Encoding:gzip, deflate
=== 2015-04-24 17:40:08,380 [c-31] DEBUG LMSIDACall - Header Name:Value pair: content-type:application/x-www-form-urlencoded; charset=UTF-8
=== 2015-04-24 17:40:08,380 [c-31] DEBUG LMSIDACall - Header Name:Value pair: referer:REMOVED
=== 2015-04-24 17:40:08,380 [c-31] DEBUG LMSIDACall - Header Name:Value pair: content-length:1059
=== 2015-04-24 17:40:08,380 [c-31] DEBUG LMSIDACall - Header Name:Value pair: cookie:JSESSIONID=REMOVED; isc_cState=ready; GLog=REMOVED
=== 2015-04-24 17:40:08,380 [c-31] DEBUG LMSIDACall - Header Name:Value pair: connection:keep-alive
=== 2015-04-24 17:40:08,380 [c-31] DEBUG LMSIDACall - Header Name:Value pair: pragma:no-cache
=== 2015-04-24 17:40:08,380 [c-31] DEBUG LMSIDACall - Header Name:Value pair: Cache-Control:no-cache
=== 2015-04-24 17:40:08,380 [c-31] DEBUG LMSIDACall - session exists: REMOVED
=== 2015-04-24 17:40:08,380 [c-31] DEBUG LMSIDACall - remote user: csuperuser
=== 2015-04-24 17:40:08,381 [c-31] DEBUG RPCManager - Processing 1 requests.
=== 2015-04-24 17:40:08,381 [c-31] DEBUG RPCManager - Request #1 (DSRequest) payload: {
    criteria:{
        ID:51
    },
    operationConfig:{
        dataSource:"T_CAMPAIGN",
        repo:null,
        operationType:"fetch",
        textMatchStyle:"exact"
    },
    componentId:"isc_AddEditLeadMasterdata_2_0",
    appID:"builtinApplication",
    operation:"fetchOwnAndOtherLECampaigns",
    oldValues:{
        ID:51
    }
}
=== 2015-04-24 17:40:08,381 [c-31] INFO  LMSIDACall - Performing 1 operation(s)
=== 2015-04-24 17:40:08,805 [c-31] WARN  DataSourceDMI - Failed to create serverObject using operation level config. Will try to use DataSource level config instead. Actual error: PermGen space
=== 2015-04-24 17:40:09,180 [c-31] WARN  RequestContext - dsRequest.execute() failed:
java.lang.Exception: java.lang.OutOfMemoryError: PermGen space
        at com.isomorphic.datasource.DataSourceDMI.execute(DataSourceDMI.java:246)
        at com.isomorphic.datasource.DataSourceDMI.execute(DataSourceDMI.java:64)
        at com.isomorphic.datasource.DSRequest.execute(DSRequest.java:2544)
        at com.isomorphic.servlet.IDACall.handleDSRequest(IDACall.java:220)
        at com.lmscompany.lms.server.LMSIDACall.handleDSRequest(LMSIDACall.java:75)
        at com.isomorphic.servlet.IDACall.processRPCTransaction(IDACall.java:185)
        at com.lmscompany.lms.server.LMSIDACall.processRequest(LMSIDACall.java:40)
        at com.isomorphic.servlet.IDACall._processRequest(IDACall.java:117)
        at com.isomorphic.servlet.IDACall.doPost(IDACall.java:76)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:646)
        at com.isomorphic.servlet.BaseServlet.service(BaseServlet.java:156)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
        at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
        at com.isomorphic.servlet.CompressionFilter._doFilter(CompressionFilter.java:260)
        at com.isomorphic.servlet.BaseFilter.doFilter(BaseFilter.java:83)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:610)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
        at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
        at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:193)
        at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607)
        at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:313)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:744)
Caused by: java.lang.OutOfMemoryError: PermGen space
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
        at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2957)
        at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1210)
        at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1690)
        at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1571)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:270)
        at com.isomorphic.base.Reflection.classForName(Reflection.java:139)
        at com.isomorphic.rpc.ServerObject.<init>(ServerObject.java:157)
        at com.isomorphic.rpc.ServerObject.<init>(ServerObject.java:70)
        at com.isomorphic.datasource.DataSourceDMI.execute(DataSourceDMI.java:236)
        at com.isomorphic.datasource.DataSourceDMI.execute(DataSourceDMI.java:64)
        at com.isomorphic.datasource.DSRequest.execute(DSRequest.java:2544)
        at com.isomorphic.servlet.IDACall.handleDSRequest(IDACall.java:220)
        at com.lmscompany.lms.server.LMSIDACall.handleDSRequest(LMSIDACall.java:75)
        at com.isomorphic.servlet.IDACall.processRPCTransaction(IDACall.java:185)
        at com.lmscompany.lms.server.LMSIDACall.processRequest(LMSIDACall.java:40)
        at com.isomorphic.servlet.IDACall._processRequest(IDACall.java:117)
        at com.isomorphic.servlet.IDACall.doPost(IDACall.java:76)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:646)
        at com.isomorphic.servlet.BaseServlet.service(BaseServlet.java:156)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
        at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
        at com.isomorphic.servlet.CompressionFilter._doFilter(CompressionFilter.java:260)
        at com.isomorphic.servlet.BaseFilter.doFilter(BaseFilter.java:83)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)

2nd out of memory request:
Code:

=== 2015-04-24 17:40:08,381 [c-50] INFO  RequestContext - URL: '/test/lms/sc/IDACall', User-Agent: 'Mozilla/5.0 (Windows NT 6.3; WOW64; rv:37.0) Gecko/20100101 Firefox/37.0': Moz (Gecko) with Accept-Encoding header
=== 2015-04-24 17:40:08,381 [c-50] DEBUG LMSIDACall - Header Name:Value pair: host:REMOVED
=== 2015-04-24 17:40:08,381 [c-50] DEBUG LMSIDACall - Header Name:Value pair: user-agent:Mozilla/5.0 (Windows NT 6.3; WOW64; rv:37.0) Gecko/20100101 Firefox/37.0
=== 2015-04-24 17:40:08,381 [c-50] DEBUG LMSIDACall - Header Name:Value pair: accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
=== 2015-04-24 17:40:08,381 [c-50] DEBUG LMSIDACall - Header Name:Value pair: Accept-Language:de,en-US;q=0.7,en;q=0.3
=== 2015-04-24 17:40:08,381 [c-50] DEBUG LMSIDACall - Header Name:Value pair: Accept-Encoding:gzip, deflate
=== 2015-04-24 17:40:08,381 [c-50] DEBUG LMSIDACall - Header Name:Value pair: content-type:application/x-www-form-urlencoded; charset=UTF-8
=== 2015-04-24 17:40:08,381 [c-50] DEBUG LMSIDACall - Header Name:Value pair: referer:REMOVED
=== 2015-04-24 17:40:08,381 [c-50] DEBUG LMSIDACall - Header Name:Value pair: content-length:1282
=== 2015-04-24 17:40:08,381 [c-50] DEBUG LMSIDACall - Header Name:Value pair: cookie:JSESSIONID=REMOVED; isc_cState=ready; GLog=REMOVED
=== 2015-04-24 17:40:08,381 [c-50] DEBUG LMSIDACall - Header Name:Value pair: connection:keep-alive
=== 2015-04-24 17:40:08,381 [c-50] DEBUG LMSIDACall - Header Name:Value pair: pragma:no-cache
=== 2015-04-24 17:40:08,381 [c-50] DEBUG LMSIDACall - Header Name:Value pair: Cache-Control:no-cache
=== 2015-04-24 17:40:08,381 [c-50] DEBUG LMSIDACall - session exists: REMOVED
=== 2015-04-24 17:40:08,381 [c-50] DEBUG LMSIDACall - remote user: csuperuser
=== 2015-04-24 17:40:09,181 [c-50] DEBUG RPCManager - Processing 1 requests.
=== 2015-04-24 17:40:09,181 [c-50] DEBUG RPCManager - Request #1 (DSRequest) payload: {
    criteria:{
        operator:"equals",
        fieldName:"LEAD_ID",
        value:85,
        _constructor:"AdvancedCriteria"
    },
    operationConfig:{
        dataSource:"V_LEAD_RESELLER_MATCH_ALL_RD",
        repo:null,
        operationType:"fetch",
        textMatchStyle:"exact"
    },
    appID:"builtinApplication",
    operation:"countPossibleResellers",
    oldValues:{
        operator:"equals",
        fieldName:"LEAD_ID",
        value:85,
        _constructor:"AdvancedCriteria"
    }
}
=== 2015-04-24 17:40:09,181 [c-50] INFO  LMSIDACall - Performing 1 operation(s)
=== 2015-04-24 17:40:09,688 [c-50] WARN  RequestContext - dsRequest.execute() failed:
java.lang.OutOfMemoryError: PermGen space
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
        at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2957)
        at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1210)
        at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1690)
        at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1571)
        at com.isomorphic.datasource.DSRequest.convertMapOfStringToMapOfSummaryFunctionType(DSRequest.java:642)
        at com.isomorphic.datasource.DSRequest.buildSummaryFields(DSRequest.java:1648)
        at com.isomorphic.datasource.DSRequest.buildFieldData(DSRequest.java:3053)
        at com.isomorphic.datasource.DSRequest.execute(DSRequest.java:2392)
        at com.isomorphic.servlet.IDACall.handleDSRequest(IDACall.java:220)
        at com.lmscompany.lms.server.LMSIDACall.handleDSRequest(LMSIDACall.java:75)
        at com.isomorphic.servlet.IDACall.processRPCTransaction(IDACall.java:185)
        at com.lmscompany.lms.server.LMSIDACall.processRequest(LMSIDACall.java:40)
        at com.isomorphic.servlet.IDACall._processRequest(IDACall.java:117)
        at com.isomorphic.servlet.IDACall.doPost(IDACall.java:76)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:646)
        at com.isomorphic.servlet.BaseServlet.service(BaseServlet.java:156)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
        at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
        at com.isomorphic.servlet.CompressionFilter._doFilter(CompressionFilter.java:260)
        at com.isomorphic.servlet.BaseFilter.doFilter(BaseFilter.java:83)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:610)

3rd out of memory request:
Code:

=== 2015-04-24 17:40:19,249 [c-54] INFO  RequestContext - URL: '/test/lms/sc/IDACall', User-Agent: 'Mozilla/5.0 (Windows NT 6.3; WOW64; rv:37.0) Gecko/20100101 Firefox/37.0': Moz (Gecko) with Accept-Encoding header
=== 2015-04-24 17:40:19,249 [c-54] DEBUG LMSIDACall - Header Name:Value pair: host:REMOVED
=== 2015-04-24 17:40:19,249 [c-54] DEBUG LMSIDACall - Header Name:Value pair: user-agent:Mozilla/5.0 (Windows NT 6.3; WOW64; rv:37.0) Gecko/20100101 Firefox/37.0
=== 2015-04-24 17:40:19,249 [c-54] DEBUG LMSIDACall - Header Name:Value pair: accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
=== 2015-04-24 17:40:19,249 [c-54] DEBUG LMSIDACall - Header Name:Value pair: Accept-Language:de,en-US;q=0.7,en;q=0.3
=== 2015-04-24 17:40:19,249 [c-54] DEBUG LMSIDACall - Header Name:Value pair: Accept-Encoding:gzip, deflate
=== 2015-04-24 17:40:19,249 [c-54] DEBUG LMSIDACall - Header Name:Value pair: content-type:application/x-www-form-urlencoded; charset=UTF-8
=== 2015-04-24 17:40:19,249 [c-54] DEBUG LMSIDACall - Header Name:Value pair: referer:REMOVED
=== 2015-04-24 17:40:19,249 [c-54] DEBUG LMSIDACall - Header Name:Value pair: content-length:1566
=== 2015-04-24 17:40:19,249 [c-54] DEBUG LMSIDACall - Header Name:Value pair: cookie:JSESSIONID=REMOVED; isc_cState=ready; GLog=REMOVED
=== 2015-04-24 17:40:19,249 [c-54] DEBUG LMSIDACall - Header Name:Value pair: connection:keep-alive
=== 2015-04-24 17:40:19,249 [c-54] DEBUG LMSIDACall - Header Name:Value pair: pragma:no-cache
=== 2015-04-24 17:40:19,249 [c-54] DEBUG LMSIDACall - Header Name:Value pair: Cache-Control:no-cache
=== 2015-04-24 17:40:19,249 [c-54] DEBUG LMSIDACall - session exists: REMOVED
=== 2015-04-24 17:40:19,249 [c-54] DEBUG LMSIDACall - remote user: csuperuser
=== 2015-04-24 17:40:19,251 [c-54] DEBUG RPCManager - Processing 1 requests.
=== 2015-04-24 17:40:19,251 [c-54] DEBUG RPCManager - Request #1 (DSRequest) payload: {
    criteria:{
        operator:"equals",
        fieldName:"LEAD_ID",
        value:85,
        _constructor:"AdvancedCriteria"
    },
    operationConfig:{
        dataSource:"V_LEAD_STATUS_HISTORY",
        repo:null,
        operationType:"fetch",
        textMatchStyle:"exact"
    },
    startRow:0,
    endRow:75,
    sortBy:[
        "-CHANGENUMBER"
    ],
    componentId:"isc_ShowLeadHistoryStatus_1_0",
    appID:"builtinApplication",
    operation:"V_LEAD_STATUS_HISTORY_fetch",
    oldValues:{
        operator:"equals",
        fieldName:"LEAD_ID",
        value:85,
        _constructor:"AdvancedCriteria"
    }
}
=== 2015-04-24 17:40:19,251 [c-54] INFO  LMSIDACall - Performing 1 operation(s)
=== 2015-04-24 17:40:19,770 [c-54] WARN  DataSourceDMI - Failed to create serverObject using operation level config. Will try to use DataSource level config instead. Actual error: PermGen space
=== 2015-04-24 17:40:20,161 [c-54] WARN  RequestContext - dsRequest.execute() failed:
java.lang.Exception: java.lang.OutOfMemoryError: PermGen space
        at com.isomorphic.datasource.DataSourceDMI.execute(DataSourceDMI.java:246)
        at com.isomorphic.datasource.DataSourceDMI.execute(DataSourceDMI.java:64)
        at com.isomorphic.datasource.DSRequest.execute(DSRequest.java:2544)
        at com.isomorphic.servlet.IDACall.handleDSRequest(IDACall.java:220)
        at com.lmscompany.lms.server.LMSIDACall.handleDSRequest(LMSIDACall.java:75)
        at com.isomorphic.servlet.IDACall.processRPCTransaction(IDACall.java:185)
        at com.lmscompany.lms.server.LMSIDACall.processRequest(LMSIDACall.java:40)
        at com.isomorphic.servlet.IDACall._processRequest(IDACall.java:117)
        at com.isomorphic.servlet.IDACall.doPost(IDACall.java:76)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:646)
        at com.isomorphic.servlet.BaseServlet.service(BaseServlet.java:156)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
        at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
        at com.isomorphic.servlet.CompressionFilter._doFilter(CompressionFilter.java:260)
        at com.isomorphic.servlet.BaseFilter.doFilter(BaseFilter.java:83)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:610)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
        at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
        at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:193)
        at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607)
        at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:313)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:744)
Caused by: java.lang.OutOfMemoryError: PermGen space
=== 2015-04-24 17:40:20,289 [c-54] DEBUG RPCManager - Content type for RPC transaction: text/plain; charset=UTF-8
=== 2015-04-24 17:40:20,289 [c-54] DEBUG RPCManager - non-DMI response, dropExtraFields: false
=== 2015-04-24 17:40:20,290 [c-54] INFO  Compression - /test/lms/sc/IDACall: 177 -> 158 bytes

and so on.

I restarted Tomcat after noticing, which stopped the exceptions for me. Also, I'm running many instances of the application under different Tomcat server.xml <Host>-tags. It seems, the other hosts were not affected by the error.
I can provide full logs via email, if needed. I don't have any linux memory listings from before the exception but can provide all needed current RAM usage and configurations parameters.

Does this (java.lang.NullPointerException at com.isomorphic.rpc.ExcelDataExport.writeExportObject(ExcelDataExport.java:1313)) look like a possible bug?

Best regards
Blama

Upload image without SmartGWT Server->uploadItem.submitForm, invisible Frame, Servlet

$
0
0
I don't use SmartGWT Server, our server is a JBoss where we have implemented REST Web Services.

I will try to provide a complete tutorial in order to :
- Choose one or several image files in the file chooser of an UploadItem
- Display it in a com.smartgwt.client.widgets.Img object in my browser

It seemed so easy to do such basic stuff but I was wrong.
Due to security reasons, the browser does not give a way to get complete path to the file.
Then your SmartGWT client code has no way to read the file on client workstation.

The method uploadItem.getDisplayValue() gives you on Firefox only file name and on Chrome file name with "C:/fakepath/" as suffix.

The only method (I'm writing this tutorial in order to get confirmation) to do such thing is to :
- Perform a uploadItem.submitForm() on client
- Implement a Servlet on server which will :
* receive submit form datapackage
* extract file(s) binary
* call back client in order to give client file(s) binary
- Client get called back and display file(s) binary in Img objects

To make it a little more complicated, the uploadItem.submitForm will make your browser change page and go on Servlet's defined URL.
You may not want this and want to stay on your current page waiting for being called back (me too).
To do such thing, you have to define an invisible frame which will be the target of submitForm().
The Servlet will provide Javascript code as return to this invisible Frame in order to get your client called back.
That is why we will have a Javascript native method on our client.

I build this solution from all those pages :
http://www.mrsondao.com/TopicDetail.aspx?TopicId=2
http://forums.smartclient.com/showthread.php?t=3102
http://ruchi0711.blogspot.fr/2011/07/file-upload-using-smart-gwt.html
http://maryniuk.blogspot.fr/2009/09/upload-file-in-smartgwt.html
http://blog.karanfil.info/2011/03/smartgwt-file-upload.html
http://stackoverflow.com/questions/8488078/get-call-back-from-servlet-in-gwt-when-upload-file-in-smartgwts-dynamic-form-wi
http://forums.smartclient.com/showthread.php?t=5477

Let's do it step by step.

---------------------
-- INVISIBLE FRAME --
---------------------

Code:

// Hidden frame in order to perform upload image file
private static NamedFrame uploadFileHiddenFrame = new NamedFrame("uploadFileHiddenFrame");
...
uploadFileHiddenFrame.setWidth("1px");
uploadFileHiddenFrame.setHeight("1px");
uploadFileHiddenFrame.setVisible(false);
mainlayout.addMember(uploadFileHiddenFrame);

This invisible frame has to be added to your client.
In my case, mainLayout is my main layout containing our whole MMI.

-----------------
-- SUBMIT FORM --
-----------------

submitForm method is performed on a DynamicForm

Code:

// DynamicForm in order to load one image
// client-server servlet call and back
final DynamicForm uploadForm = new DynamicForm();
uploadForm.setEncoding(Encoding.MULTIPART);
// Set servlet name
uploadForm.setAction(GWT.getModuleBaseURL() + "uploadImageFile");
// In order to do not perform full page reload
// target is set to CATV hidden frame defined in HomeView
uploadForm.setTarget("uploadFileHiddenFrame");

// Upload item allowing to choose image file
uploadItem = new UploadItem();
uploadItem.addChangedHandler(new ChangedHandler() {

  @Override
  public void onChanged(ChangedEvent event) {
    // Call servlet threw hidden frame
    uploadForm.submitForm();
  }
});
uploadForm.setItems(uploadItem);

In my case, I have created a class com.example.client.MyCanvas which extends CanvasItem.
The DynamicForm is added to my canvas.

Code:

public MyCanvas(...){
  ...
  myCanvas.setCanvas(uploadForm);
  ...
}

----------------------------------------------
-- Javascript native function for call back --
----------------------------------------------

After adding uploadForm in myCanvas, we can add call back mechanism

Code:

public MyCanvas(...){
  ...
  // Add native javascript mechanism in order to perform a call back
  addUploadImageCallback(this);
  ...
}

Method addUploadImageCallback in MyCanvas.

Code:

private native void addUploadImageCallback(com.example.client.MyCanvas load) /*-{
  $wnd.uploadCompleteCallback = function(imagePayload) {
    load.@com.example.client.MyCanvas::uploadCompleteCallback(Ljava/lang/String;)(imagePayload);
  };
}-*/;

With this, the invisible frame we have declared previously will be able to receive result from servlet and executed the method uploadCompleteCallback on myCanvas.

Now we can declare method uploadCompleteCallback in MyCanvas.

Code:

private void uploadCompleteCallback(String imagePayload) {
  System.out.println(imagePayload);
}

-------------
-- SERVLET --
-------------

In the file web.xml :

Code:

<!-- Upload Image File -->
<servlet>
        <servlet-name>UploadImageFile</servlet-name>
        <servlet-class>com.example.server.UploadImageFile</servlet-class>
</servlet>
<servlet-mapping>
        <servlet-name>UploadImageFile</servlet-name>
        <url-pattern>/myapp/uploadImageFile</url-pattern>
</servlet-mapping>

myapp == GWT.getModuleBaseURL()

Code:

package com.example.server;

import ...

public class UploadImageFile extends HttpServlet {
  @Override
  protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
   
    PrintWriter out = resp.getWriter();
    resp.setContentType("text/html");
   
    String message = "coucou";
   
    out.println("<html>");
    out.println("<head>");
    out.println("<script type =\"text/javascript\">");
    out.println("function foo() { ");
    out.println("window.top.uploadCompleteCallback('" + message + "');");
    out.println("}");
    out.println("</script>");
    out.println("</head>");
    out.println("<body onload=\"foo();\">");
    out.println("</body>");
    out.println("</html>");
   
    resp.flushBuffer();
  }
}

This generated Javascript code will be send back to the invisible frame declared previously.
This invisible frame will execute such code and call uploadCompleteCallback method with message argument on myCanvas.

-----------------------
-- END FIRST VERSION --
-----------------------

At this point, it should be working and you should see on client console the message "coucou".

---------------------
-- EXTRACT FILE(S) --
---------------------

In servlet I use Apache Commons File Upload in order to extract file(s) easily, there is many others ways to do it.

Code:

<dependency>
  <groupId>commons-fileupload</groupId>
        <artifactId>commons-fileupload</artifactId>
        <version>1.2.1</version>
</dependency>

Code:

public class UploadImageFile extends HttpServlet {
  private final DiskFileItemFactory factory = new DiskFileItemFactory();
 
  public UploadImageFile() {
    // set size threshold to 20 MB
    factory.setSizeThreshold(2000000);
  }
 
  @Override
  protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
   
    final ServletFileUpload upload = new ServletFileUpload(factory);
    final List<FileItem> fileItems = upload.parseRequest(req);
   
    for (FileItem fileItem : fileItems) {
      String fileName = fileItem.getName();
      byte[] imageFileAsByteArray = fileItem.get();
    }
   
    PrintWriter out = resp.getWriter();
    resp.setContentType("text/html");
   
    String message = "coucou";
   
    out.println("<html>");
    out.println("<head>");
    out.println("<script type =\"text/javascript\">");
    out.println("function foo() { ");
    out.println("window.top.uploadCompleteCallback('" + message + "');");
    out.println("}");
    out.println("</script>");
    out.println("</head>");
    out.println("<body onload=\"foo();\">");
    out.println("</body>");
    out.println("</html>");
   
    resp.flushBuffer();
  }
}

-----------------------
-- BINARY AS BASE 64 --
-----------------------

I choose to encode the binary from byte[] to Base64 String.
I use Apache Commons Codec.

Code:

<dependency>
  <groupId>commons-codec</groupId>
  <artifactId>commons-codec</artifactId>
  <version>1.10</version>
</dependency>

Code:

// Convert byte[] as Base64 String
String imageFileAsBase64 = new String(Base64.encodeBase64(imageFileAsByteArray));

Now you can return imageFileAsBase64 instead of "coucou"

-----------------
-- ADD HEADERS --
-----------------

In order to be display on client in Img object (or TileGrid for example), you must add headers to your Base64 String :
Let's assume the image file uploaded is a jpg.

Code:

String mimeType = "image/jpeg";
String headers = "data:" + mimeType + ";base64,";
String imagePayload = headers + imageFileAsBase64;

Now you can return imagePayload instead of imageFileAsBase64

--------------------
-- DISPLAY IN IMG --
--------------------

In uploadCompleteCallback method, you can display image in a Img object :

Code:

Img picture = new Img();
picture.setSrc(imagePayload);
// add picture to your MMI

---------------------
-- THIS IS THE END --
---------------------

I worry about my solution, i found it too complicated for something so basic (just display an image in client .....).
I'm new on SmartGWT development and basically Front-End development.

I take advice and critics. Is there some way much more easier to do that ?
It hard for me to admit I need a Javascript native function to perform a call back, it must be another way.

Thanks by advance.

Send email Google App Engine

$
0
0
Hello everyone,

I am getting the following error from my code that send email from Google App Engine

Code:

com.google.apphosting.api.ApiProxy$CallNotFoundException: The API package 'mail' or call 'Send()' was not found.
        at com.google.apphosting.api.ApiProxy.makeSyncCall(ApiProxy.java:109)
        at com.google.apphosting.api.ApiProxy.makeSyncCall(ApiProxy.java:64)
        at com.google.appengine.api.mail.MailServiceImpl.doSend(MailServiceImpl.java:101)
        at com.google.appengine.api.mail.MailServiceImpl.send(MailServiceImpl.java:34)
        at com.google.appengine.api.mail.stdimpl.GMTransport.sendMessage(GMTransport.java:236)
        at javax.mail.Transport.send(Transport.java:95)
        at javax.mail.Transport.send(Transport.java:48)



I've tried to use the solution suggested in this forum ...

http://stackoverflow.com/questions/2...oyed-to-tomcat

But without success!

Please anyone who can suggest a solution, I will be grateful!

This is my code in Java:


Code:

import java.io.UnsupportedEncodingException;
import java.util.Properties;
import javax.mail.Message;
import javax.mail.MessagingException;

import javax.mail.Session;
import javax.mail.Transport;

import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;



public class EmailJava {

    public EmailJava() {

    }

    public void enviaEmail() throws UnsupportedEncodingException {
        Properties props = new Properties();
        Session session = Session.getDefaultInstance(props, null);

        String Mensagem = "teste";

        try {
            Message msg = new MimeMessage(session);
            msg.setFrom(new InternetAddress("email@domain.com", "User"));
            msg.addRecipient(Message.RecipientType.TO, new InternetAddress("user@domain.com", "Mr. User"));
            msg.setSubject("Sua conta Example.com foi ativado");
            msg.setText(Mensagem);
            Transport.send(msg);

        } catch (AddressException e) {
            e.printStackTrace();
        } catch (MessagingException e) {
            e.printStackTrace();
        }
    }

}

Showcase DateChooser expands 100% vertically


Running Showcase on a mobile device

$
0
0
I tried to run http://www.smartclient.com/smartgwt/showcase/ on 3 mobile devices I have (iPad, Samsung S2, ASUS Fonepad). I opened DemoApplication node (pushed ShowExample button) and found out that it does not work. I saw only Categories title (the only word on the screen) and app becomes unresponsive at all.
Can anybody let me know if you see the same or it works ok with you?

Drag and Drop Extended ListGrid Class Does Not Display On Palette

$
0
0
I've followed the palette code sample, and tried to apply it to an extended ListGrid without success. However, when dragging and dropping my extended ListGrid object, an exception is raised.

The only workaround I know is to include my extended ListGrid object in a Windows object. If so, I'm able to drag and drop the window from a palette into an edit pane.



/*-----------------------------------------------------*/
SmartGWT - SmartClient Version: v10.0p_2015-04-01/EVAL Deployment

Firefox 36

Stack Trace:

11:38:29.832:MUP4:WARN:Log:TypeError: _4.getInstanceProperty is not a function
Stack from error.stack:
.createLiveObject() @ builtinds/sc/modules/ISC_DataBinding.js:2693:254
.makeEditNode() @ builtinds/sc/modules/ISC_DataBinding.js:2685:343
EditContext.makeEditNode() @ builtinds/sc/modules/ISC_DataBinding.js:2609:129
EditContext.addFromPaletteNodes() @ builtinds/sc/modules/ISC_DataBinding.js:2639:14
EditProxy.completeItemDrop() @ builtinds/sc/modules/ISC_DataBinding.js:2804:21
EditProxy.drop() @ builtinds/sc/modules/ISC_DataBinding.js:2802:1
[c]EventHandler.bubbleEvent() @ builtinds/sc/modules/ISC_Core.js:1568:82
[c]EventHandler.handleEvent() @ builtinds/sc/modules/ISC_Core.js:1326:342
[c]EventHandler.handleDragStop() @ builtinds/sc/modules/ISC_Core.js:1503:165
EventHandler._handleMouseUp() @ builtinds/sc/modules/ISC_Core.js:1408:33
[c]EventHandler.handleMouseUp() @ builtinds/sc/modules/ISC_Core.js:1405:54
[c]EventHandler.dispatch() @ builtinds/sc/modules/ISC_Core.js:1643:76
anonymous() @ builtinds/sc/modules/ISC_Core.js line 77 > Function:1:95

Attached Files
File Type: java ItemPalette.java (3.4 KB)
File Type: java PaletteEditPane.java (433 Bytes)
File Type: java TrackModelGrid.java (593 Bytes)
File Type: java BuiltInDS.java (3.7 KB)

Batch uploader text truncated in firefox

$
0
0
Hi,

Currently using batch uploader for uploading (.csv) files to database . In chrome browser working fine but in firefox browser the name of the file is getting truncated.please find the attached file for your kind reference.Awaiting for your reply.

SmartGWT : 2.5.1
Firefox : 24.8.1
Chrome : 42.0.2311.90 m

Thanks
Sathya,

Attached Images
File Type: png Capture.PNG (6.6 KB)

Unable to locate SmartClient 10 element with Selenium Web Driver 2

$
0
0
Hi,

Smart Client Version - 10
Selenium IDE Version - 2.8
Broswer -firefox 35
Selenium Web Driver - 2.45 and isomorphic_webdriver.jar(that came with smartclient 10)

I am trying to automate SmartClient 10 based application with Selenium Web driver, I am using Selenium IDE 2.8 with user-extension.js and user-extension-ide.js to get sc_locator and using isomorphic_webdriver jar to locate element through my java code.
When I am running my java code it is giving me error no such element found.
But when I am changing the smartclient version from 10 to 9.1 and using the same selenium code to locate element, it is able to locate it.
The locator that I found is same for both Smartclient version(10 & 9.1).

Steps that I am following:
1. First I added the user-extension.js and user-extension-ide.js to my selenium IDE.
2. After that I am using selenium ide to find sc_locator of particular element.
3. Using that sc_locator in my selenium-java code to find element and perform action on it. But, I am getting "no such element" error.
4. But when I am changing the smartclient version of my application from 10 to 9.1 and using the same code and sc_locator, it is working. I am able to find element on smartclient 9.1 with sc_locator but not with smartclient 10.

Here is some part of my code:

public class Demo
{
public static void main(String[] args) throws Exception
{
Demo demo = new Demo();
SmartClientFirefoxDriver driver1 = new SmartClientFirefoxDriver();
driver1.get("application url");
driver1.manage().window().maximize();
By element = ByScLocator.scLocator("//ActionableListGrid[ID=\"loginLG\"]/body/row[loginId=aggr.user@yahoo.com||1]/col[fieldName=loginId||0]");
Thread.sleep(15000);
driver1.waitForElementClickable(element);
driver1.click(element);
}
}

Switching Selenium from 2.0 to 2.45.0, using firefox v.34.0.5

$
0
0
Hello Isomorphic,

I'm in the process of switching Selenium from 2.0 to 2.45.0, using firefox v.34.0.5, and I need some information about TestRunnerServlet new features, can I have some link or documentation about technical enhancement ?

Thanks.
Viewing all 4756 articles
Browse latest View live