<Summry>
A part of a string data is duplicate in DSResponse.
The string data is "あいうえおが" in DB. But, The string data is "あいいうえおが" in DSResponse.
Please tell us the conceivable causes for that.
<Detailed>
We do not know a occurrence condition well.
We can reproduce this problem with the following step.
1. Specific data is saved in DB.
Particularly, data of a table stored the string is attached as "ABOOK_ENTRY_DATA.csv". (This string are DBCS)
Figure1 shows a problem record. A blue frame is the string data of the problem. A red frame is a string data which is the same with the blue frame.
We know that the blue frame is not occured the problem.
2. We operate to fetch data in smartGWT.
3. We check the string in DSResponse on Smart GWT Developer Console.
Figure2 shows Smart GWT Developer Console at that time.
We know that the problem is occured.
<Confirmed things>
- If string-length of "ABOOK_ENTRY_NAME" or "ABOOK_ENTRY_DISPLAYNAME" in ABOOK_ENTRY_DATA is changed, then we cannot reproduce.
- If string-length of "ABOOK_ENTRY_NAME" and "ABOOK_ENTRY_DISPLAYNAME" in ABOOK_ENTRY_DATA is not changed, and string is changed from DBCS to 1 byte string set, then we cannot reproduce.
<System>
- GWT: 2.3.0
- Smart GWT: 3.0.0
- DB System: Firebird
- DDL of ABOOK_ENTRY
- DS.XML of ABOOK_ENTRY
- ServerConstructor class
A part of a string data is duplicate in DSResponse.
The string data is "あいうえおが" in DB. But, The string data is "あいいうえおが" in DSResponse.
Please tell us the conceivable causes for that.
<Detailed>
We do not know a occurrence condition well.
We can reproduce this problem with the following step.
1. Specific data is saved in DB.
Particularly, data of a table stored the string is attached as "ABOOK_ENTRY_DATA.csv". (This string are DBCS)
Figure1 shows a problem record. A blue frame is the string data of the problem. A red frame is a string data which is the same with the blue frame.
We know that the blue frame is not occured the problem.
2. We operate to fetch data in smartGWT.
3. We check the string in DSResponse on Smart GWT Developer Console.
Figure2 shows Smart GWT Developer Console at that time.
We know that the problem is occured.
<Confirmed things>
- If string-length of "ABOOK_ENTRY_NAME" or "ABOOK_ENTRY_DISPLAYNAME" in ABOOK_ENTRY_DATA is changed, then we cannot reproduce.
- If string-length of "ABOOK_ENTRY_NAME" and "ABOOK_ENTRY_DISPLAYNAME" in ABOOK_ENTRY_DATA is not changed, and string is changed from DBCS to 1 byte string set, then we cannot reproduce.
<System>
- GWT: 2.3.0
- Smart GWT: 3.0.0
- DB System: Firebird
- DDL of ABOOK_ENTRY
Code:
CREATE TABLE ABOOK_ENTRY
(
ABOOK_ENTRY_ID Integer NOT NULL,
ABOOK_ID Integer NOT NULL,
ABOOK_ENTRY_INDEX Integer,
ABOOK_ENTRY_NAME Varchar(255) CHARACTER SET UTF8 NOT NULL COLLATE UNICODE,
ABOOK_ENTRY_TYPE Char(1) NOT NULL,
ABOOK_ENTRY_INDEX_EN Smallint,
ABOOK_ENTRY_LOGONNAME Varchar(255) CHARACTER SET UTF8 COLLATE UNICODE,
ABOOK_ENTRY_DISPLAYNAME Varchar(256) CHARACTER SET UTF8 COLLATE UNICODE,
ABOOK_ENTRY_PHONETICNAME Varchar(256) CHARACTER SET UTF8 COLLATE UNICODE,
ABOOK_ENTRY_COMMON Smallint,
ABOOK_ENTRY_TAGSET1 Smallint,
ABOOK_ENTRY_TAGSET2 Smallint,
ABOOK_ENTRY_TAGSET3 Smallint,
ABOOK_ENTRY_ADDRESS Varchar(128) CHARACTER SET UTF8 COLLATE UNICODE,
ABOOK_ENTRY_ISSENDER Smallint,
ABOOK_ENTRY_ISDESTINATION Smallint,
ABOOK_ENTRY_PROTECT Smallint,
ABOOK_ENTRY_PASSWORD Varchar(320) CHARACTER SET UTF8 COLLATE UNICODE,
ABOOK_ENTRY_USERCODE Varchar(128) CHARACTER SET UTF8 COLLATE UNICODE,
ABOOK_ENTRY_FAXNUMBER Varchar(512),
ABOOK_ENTRY_LINETYPE Varchar(64),
ABOOK_ENTRY_ISABROAD Smallint,
ABOOK_ENTRY_TTINO Varchar(32),
ABOOK_ENTRY_LABEL1 Smallint,
ABOOK_ENTRY_LABEL2STRING Varchar(64) CHARACTER SET UTF8 COLLATE UNICODE,
ABOOK_ENTRY_MESSAGENO Smallint,
ABOOK_ENTRY_PROTECTFOLDER Smallint,
ABOOK_ENTRY_PASSWORDENCODING Varchar(128),
ABOOK_ENTRY_FOLDERPROTOCOL Smallint,
ABOOK_ENTRY_FOLDERPORT Varchar(8),
ABOOK_ENTRY_FOLDERSERVER Varchar(128),
ABOOK_ENTRY_FOLDERPATH Varchar(128) CHARACTER SET UTF8 COLLATE UNICODE,
ABOOK_ENTRY_FOLDERUSER Varchar(128) CHARACTER SET UTF8 COLLATE UNICODE,
ABOOK_ENTRY_FOLDERAUTH Smallint,
ABOOK_ENTRY_FOLDERCHARCODING Varchar(32),
ABOOK_ENTRY_IPFAXPROTOCOL Varchar(32),
ABOOK_ENTRY_IPFAXADDRESS Varchar(16),
ABOOK_ENTRY_AUTHPASSWORD Varchar(320) CHARACTER SET UTF8 COLLATE UNICODE,
ABOOK_ENTRY_FOLDERPASSWORDENC Varchar(128),
ABOOK_ENTRY_SMTPAUTH Smallint,
ABOOK_ENTRY_SMTPUSER Varchar(191) CHARACTER SET UTF8 COLLATE UNICODE,
ABOOK_ENTRY_SMTPPASSWORD Varchar(320) CHARACTER SET UTF8 COLLATE UNICODE,
ABOOK_ENTRY_SMTPPASSWORDENC Varchar(128),
ABOOK_ENTRY_FOLDERPASSWORD Varchar(320) CHARACTER SET UTF8 COLLATE UNICODE,
ABOOK_ENTRY_AUTHPASSWORDENC Varchar(128),
ABOOK_ENTRY_LDAPAUTH Smallint,
ABOOK_ENTRY_LDAPUSER Varchar(128) CHARACTER SET UTF8 COLLATE UNICODE,
ABOOK_ENTRY_LDAPPASSWORD Varchar(320) CHARACTER SET UTF8 COLLATE UNICODE,
ABOOK_ENTRY_LDAPPASSWORDENC Varchar(32),
ABOOK_ENTRY_ACL_PRINTER_BW Smallint,
ABOOK_ENTRY_ACL_PRINTER_COLOR Smallint,
ABOOK_ENTRY_ACL_SCANNER Smallint,
ABOOK_ENTRY_ACL_COPY_BW Smallint,
ABOOK_ENTRY_DIRECTSMTP Smallint,
ABOOK_ENTRY_ACL_COPY_SCOLOR Smallint,
ABOOK_ENTRY_ACL_COPY_TWINCOLOR Smallint,
ABOOK_ENTRY_ACL_COPY_FULLCOLOR Smallint,
ABOOK_ENTRY_ACL_DOCBOX Smallint,
ABOOK_ENTRY_ACL_FAX Smallint,
ABOOK_ENTRY_ACL_COPY_AUTOCOLOR Smallint,
ABOOK_ENTRY_FOLDERLOGONMODE Varchar(128),
ABOOK_ENTRY_LIMITMAX Integer,
ABOOK_ENTRY_BROWSERACL Smallint,
ABOOK_ENTRY_RESET_PCOUNTER_EN Smallint,
ABOOK_ENTRY_RESET_FSEND_CTR_EN Smallint,
ABOOK_ENTRY_RESET_SCOUNTER_EN Smallint,
ABOOK_ENTRY_RESET_UVOLUME_EN Smallint,
ABOOK_ENTRY_RESET_COUNTER_S_EN Smallint,
ABOOK_ENTRY_GEN_SETTINGS_EN Smallint,
ABOOK_ENTRY_TAG_SETTINGS_EN Smallint,
ABOOK_ENTRY_UCODE_SETTINGS_EN Smallint,
ABOOK_ENTRY_AINFO_SETTINGS_EN Smallint,
ABOOK_ENTRY_UCNTRL_SETTINGS_EN Smallint,
ABOOK_ENTRY_PROT_SETTINGS_EN Smallint,
ABOOK_ENTRY_FEMAIL_SETTINGS_EN Smallint,
ABOOK_ENTRY_FOLDER_SETTINGS_EN Smallint,
ABOOK_ENTRY_GROUP_SETTINGS_EN Smallint,
ABOOK_ENTRY_IFAX_ENABLE Smallint,
ABOOK_ENTRY_IFAX_ADDRESS Varchar(128) CHARACTER SET UTF8 COLLATE UNICODE,
ABOOK_ENTRY_IFAX_DIRECTSMTP Smallint,
ABOOK_ENTRY_DISPLAY_PRIORITY Integer,
CONSTRAINT PK_ABOOK_ENTRY PRIMARY KEY (ABOOK_ENTRY_ID)
);
ALTER TABLE ABOOK_ENTRY ADD CONSTRAINT FK_AB_ENTRY
FOREIGN KEY (ABOOK_ID) REFERENCES ADDRESS_BOOK (ABOOK_ID) ON UPDATE NO ACTION ON DELETE NO ACTION;
GRANT DELETE, INSERT, REFERENCES, SELECT, UPDATE
ON ABOOK_ENTRY TO SYSDBA WITH GRANT OPTION;Code:
<DataSource
schema="dbo"
dbName="SQLServer"
tableName="abook_entry"
ID="abook_entry_only_for_list"
dataSourceVersion="1"
generatedBy="dev current"
serverType="sql"
serverConstructor="com.ricoh.mdm.cm.admintool.server.datasource.addressbook.AddressBookEntry"
dropExtraFields="true">
<fields>
<field primaryKey="true" name="abook_entry_id" type="sequence" sequenceName="s_abook_entry" hidden="true"/>
<field name="abook_id" type="number" required="true" hidden="true"/>
<field name="abook_entry_index" type="number" title="Registration No."/>
<field name="abook_entry_index_en" type="number" title="Set Registration No."/>
<field name="abook_entry_name" type="ntext" length="255" required="true" title="Name"/>
<field name="abook_entry_type" type="ntext" length="1" required="true" title="Type"/>
<field name="abook_entry_displayname" type="ntext" length="256" title="Display Name"/>
</fields>
<operationBindings>
<operationBinding operationType="fetch" requiresRole="readonly" operationId="load-to-memory">
<orderClause>abook_entry_id</orderClause>
</operationBinding>
<operationBinding operationType="fetch" requiresRole="readonly"/>
<operationBinding operationType="add" requiresRole="admin"/>
<operationBinding operationType="update" allowMultiUpdate="true" requiresRole="admin"/>
<operationBinding operationType="remove" requiresRole="admin" allowMultiUpdate="true" >
<customSQL>EXEC sp_delete_with_cascade 'abook_entry', 'abook_entry_id = $criteria.abook_entry_id'</customSQL>
</operationBinding>
<operationBinding operationType="remove" requiresRole="admin" operationId="full-template" allowMultiUpdate="true">
<customSQL>EXEC sp_delete_with_cascade 'abook_entry', 'abook_id = $criteria.abook_id'</customSQL>
</operationBinding>
<operationBinding operationType="remove" requiresRole="admin" allowMultiUpdate="true" operationId="in-memory">
</operationBinding>
</operationBindings>
</DataSource>Code:
package xxxx
import com.isomorphic.sql.SQLDataSource;
public class AddressBookEntry extends SQLDataSource {
// do nothing
}