Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 202695

Summary: Encrypted datapool variable support
Product: z_Archived Reporter: David Skeen <dskeen>
Component: TPTPAssignee: Paul Slauenwhite <paulslau>
Status: CLOSED FIXED QA Contact:
Severity: enhancement    
Priority: P1 CC: huangxy, jkubasta, jptoomey, kdsiefke, newboya1988, paulslau
Version: unspecifiedKeywords: plan
Target Milestone: ---Flags: paulslau: review+
Hardware: All   
OS: All   
URL: http://www.eclipse.org/tptp/groups/Architecture/documents/features/hf_202695.html
Whiteboard:
Bug Depends on: 208583    
Bug Blocks: 211353, 216078, 216080, 221097, 221275, 224840, 224843, 228172, 228175    
Attachments:
Description Flags
Model change for encrypted datapool support
none
Request for code review
none
New patch based on Feb. 15 code in CVS (HEAD).
none
Request for UT test cases review
none
Pls try this ZIP file for UT test cases
none
Create a new patch after updated code
none
Updated UT test cases
jcayne: iplog+
Lastest patch for this feature
none
TVT for this feature
none
Documents update for this feature
jcayne: iplog+
Updated TVT and Enablement tests for this feature
none
Refactored lastest patch for this feature.
none
Add a manaul test for JCA scenario
jcayne: iplog+
Updated patch
none
Updated a error in last patch
none
Updated a new patch
jcayne: iplog+
TVT & Enablement test cases jcayne: iplog+

Description David Skeen CLA 2007-09-07 17:17:49 EDT
Use RC4, a private-key algorithm supported by JCE, to encrypt selected datapool values (this would typically be used to encrypt passwords).  When editing a datapool, the user can select variables which will be encrypted; when this is done, the user must provide a key used to encrypt the variables.  A single key is used to encrypt values in a datapool.

Whenever encrypted variables are displayed, *'s are shown instead of the value.

When a test is run using a datapool with encrypted variables, prompt the user for the key required to decrypt the passwords.

Xin Ying Huang of the IBM Tivoli CAM Ad Tech team has been assigned to implement this feature in TPTP 4.5.
Comment 1 Paul Slauenwhite CLA 2007-09-11 14:51:55 EDT
Reassigning to Project Lead to review the contribution from Xin Ying Huang.
Comment 2 Paul Slauenwhite CLA 2007-09-18 07:40:55 EDT
(In reply to comment #1)
> Reassigning to Project Lead to review the contribution from Xin Ying Huang.
> 

As part of the Eclipse Legal process (http://www.eclipse.org/legal/EclipseLegalProcessPoster.pdf) we will need to know if the code:

1. Contains any cryptography.
2. Is developed from scratch without incorporating content from elsewhere or relying on the intellectual property of others?
3. Is 100% EPL?

Also,  when completed, we will capture each developer's name in the project IP log for the target release.  As such, please annotate each class you created/updated with a class comment containing the authors (e.g. @author).

Comment 3 Paul Slauenwhite CLA 2007-09-18 11:04:10 EDT
Pending AG/PG approval before being targeted to 4.5.
Comment 4 Paul Slauenwhite CLA 2007-09-20 06:29:26 EDT
Approved by the AG and accepted for the 4.5 plan.
Comment 5 Paul Slauenwhite CLA 2007-09-26 07:18:04 EDT
Hi XinYing, can you confirm that no new dependences will be introduced with this feature (e.g. only the JCE packaged in the IBM and Sun's J2SE is required)?
Comment 6 Xin Ying Huang CLA 2007-09-27 23:06:39 EDT
Currently ,the dependences this feature needed are  the JCE packaged in the IBM and Sun's J2SE .
Comment 7 Paul Slauenwhite CLA 2007-11-01 06:51:41 EDT
Updating sizing.
Comment 8 Joe Toomey CLA 2007-11-02 12:00:41 EDT
Attaching patch with model change to add encrypted boolean attribute on DPLVariable class and challenge string (possibly to store encrypted MD5 hash of DP name) on DPLDatapool class.  You can apply to this to the org.eclipse.tptp.platform.models project from HEAD and get the changes needed to move forward.  I'll deliver this after the test pass is over.
Comment 9 Joe Toomey CLA 2007-11-02 12:01:41 EDT
Created attachment 81975 [details]
Model change for encrypted datapool support
Comment 10 Paul Slauenwhite CLA 2007-11-26 12:08:11 EST
Retargetting to feature freeze iteration.
Comment 11 Xin Ying Huang CLA 2008-01-18 01:30:36 EST
Created attachment 87233 [details]
Request for code review 

Paul/Joe ,pls review this code ,thanks!
Comment 12 Paul Slauenwhite CLA 2008-01-21 07:06:04 EST
(In reply to comment #11)
> Created an attachment (id=87233) [details]
> Request for code review 
> 
> Paul/Joe ,pls review this code ,thanks!
> 

Completed to-date:

-Design discussion and verify design: 6 weeks 
-Implementation: 8 weeks 
Comment 13 Paul Slauenwhite CLA 2008-02-15 07:44:58 EST
Created attachment 89835 [details]
New patch based on Feb. 15 code in CVS (HEAD).
Comment 14 Paul Slauenwhite CLA 2008-02-15 15:24:49 EST
Hi Xin, 

Sorry for the delayed review.  The patch is quite large and it took a bit of time to review.  Overall, everything looks good despite the number of comments.   These comments are on the patch ONLY.  I will provide some comments on the UI when I return to the office on Tuesday.

-Is the scenario of not having the Java Cryptography Architecture (JCA) or the provider for the RC4/MD5 hash algorithms (java.security.MessageDigest) not available at run-time environment been handled and tested?

-For org.eclipse.hyades.models.common.util.EncryptionManager.RC4Encrypter.byteArrayToHexString(byte[]), could you do something like:

StringBuffer string = new StringBuffer();

for (int counter = 0; counter < bytes.length; counter++){
  string.append(Integer.toHexString(0x0100 + (bytes[counter] & 0x00FF)).substring(1));
}

return (string.toString());

-For org.eclipse.hyades.models.common.util.EncryptionManager.RC4Encrypter.hexStringToByteArray(String), could you do smelting like:

return (new BigInteger(hex,16).toByteArray());

-The name property for the launchconfigDatapoolHandler extension point should be translated (prefixed with % and launchconfigDatapoolHandler added to the plugin.properties file).

-What is the launchDatapoolCheckPass extension point do?  Do we need it?  If it is required, the UIClass attribute should be uiClass.

-All new APIs in non-internal packaged require the @provisional JavaDoc tag (see http://www.eclipse.org/tptp/home/documents/process/development/api_contract.html).

-Extension point IDs (and probably names) (e.g. DatapoolPasswordProvider) should be prefixed with the plug-in ID.

-The code in CVS (HEAD) has been changed since the attached patch was generated.  I have attached a new patch for the code released in 4.5 I5.

-TPTP supports Java 1.4 run-times so we cannot use Java 1.5/1.6 APIs.  Please set your JDK compiler compliance level to 1.4 in Eclipse (Windows >> Preferences... >> Java >> Compiler >> JDK Compliance).  You will then need to correct the compilation error in org.eclipse.hyades.test.ui.dialog.DatapoolCheck.DatapoolCheckDialog.getdpNameLength() (maybe change the name to getDatapoolName) since Java 1.4 does not support adding primitives to java.util.Lists.  I have replaced the method body with this code in the new patch:

      String datapoolName = "";
			
			for (int counter = 0; counter < dp.length; counter++) {

				if(dp[counter].getName().length() > datapoolName.length()){
					datapoolName = dp[counter].getName();
				}
			}
			
			return datapoolName;

-Please make sure you add the copyright statement to each new file with the year set to 2008.

-Please make sure the copyright end date is updated on each modified file to 2008.

-Please make sure author and version tags are added to the class JavaDoc comments for each new/modified file.  For example:

@author  Huang Xin Ying 
@version February 15, 2008

-Since the TPTP EMF models are generated, we will have to update the Rose model (/org.eclipse.tptp.platform.models/rose) with the new DPLVariable#Encrypted and DPLDatapool#Challenge properties.  In addition, we will need to update the test model class diagram on the TPTP web site (http://www.eclipse.org/tptp/platform/documents/index.php).  Please open a child defect against the Test.Models component for this work.

-Please remove any commented code from the patch that is no longer required.

-To increase readability, can you add an underscore ('_') between the work of uppercase constants (e.g. org.eclipse.hyades.test.ui.datapool.internal.dialog.DatapoolConstant).

-TPTP follows the Java naming conventions for classes and methods (see http://wiki.eclipse.org/index.php/Naming_Conventions).  Some methods are title cased (for example, org.eclipse.hyades.models.common.datapool.util.DatapoolEncryptManager.ChangeKey(String, IDatapool)).  

-Variable in org.eclipse.hyades.models.common.datapool.util.DatapoolEncryptManager.isVaribelEncrypted(IDatapoolVariable) and org.eclipse.hyades.test.ui.datapool.internal.dialog.DatapoolColumnDialog.isVaribelEncrypted(IDatapoolVariable) is misspelled.

-In src/org/eclipse/hyades/test/ui/internal/resources/messages.properties:
1) We use substitution parameters for strings with data that is resolved at run-time. For example:
DatapoolExportWizard_encrypted = {0} is encrypted. Please supply the password.
In the code:
org.eclipse.osgi.util.NLS.bind(UiPluginResourceBundle.DatapoolExportWizard_encrypted, <substitution parameter>);
2) DatapoolDialog_ASSIGNKEYDIALOGTITLE and DatapoolDialog_ERRORFOREDITENCRYPTEDVALUE contain an extra space.
3) There is no need for DatapoolDialog_ENCRYPTEDDISPLAYVALUE and DatapoolDialog_SPLITMARK since they do not need to be translated.  Add this to one of your constant classes.
4) password in DatapoolDialog_PASSWORDSHINT should be title case.

-In org.eclipse.hyades.test.ui.datapool.internal.control.DatapoolTable.java, there are three loops that have the following child condition (e.g. click cancel button):

else if (openValue == IDialogConstants.CANCEL_ID)

Can we remove this condition and just break from the loop if the OK button is not pressed?

-Complete and remote all //TODO: comments (4).

-Encrypt and decrypt in several methods in org.eclipse.hyades.models.common.datapool.util.DatapoolEncryptManager is misspelled (encryp and deencryp). 

-More of a stylistic point, org.eclipse.hyades.models.common.util.EncryptionManager.encrypt(String, String) (and possibly others) could be shortened to one line.  For example:

public static String encrypt(String content, String pass) {
		return (new RC4Encrypter().cipherMessage(pass, content));
}

-Remove the System.outre.println statement from org.eclipse.hyades.models.common.datapool.util.DatapoolEncryptManager.isKeyCorrect(IDatapool, String).  The method should throw an exception (maybe 'invalid key exception').

-The same applies for e.printStackTrace() statements (4 in total).  The exception should be logged to the .log file through the plug-in's logger (for example, org.eclipse.hyades.models.plugin.ModelsPlugin.log(String)) with a localize error message and error code.  Let me know how many error messages you have and I will generate the error codes for you.  There are some places where you are logging correctly, but the error message is not translated and does not have an error code (for example, org.eclipse.hyades.test.core.internal.launch.datapool.extensions.LaunchDatapoolExtensionManager.registerDatapoolHandlers() and org.eclipse.hyades.test.core.internal.launch.datapool.extensions.LaunchDatapoolExtensionManager.getExtensionDescriptor(String)).

-//$NON-NLS-1$ should be added at the end of lines with quoted strings.  Two quoted strings would have //$NON-NLS-1$ //$NON-NLS-2$, and so on.  To find these easily, select one or more projects in the package explorer, right click, Source, and Externalize Strings.

-Please comment all public APIs with class and method JavaDoc comments (e.g. org.eclipse.hyades.test.core.launch.extensions.IPassInfoCollector.execute(DPLDatapool[], Map, List)).

-The example needs updating (missing attribute values) and there is no copyright in /org.eclipse.hyades.test.core/schema/launchconfigDatapoolHandler.exsd and /org.eclipse.hyades.test.core/schema/launchDatapoolCheckPass.exsd (if still required).

-The following methods contain dead code:

org.eclipse.hyades.models.common.datapool.util.DatapoolEncryptManager.encryptedCellInVarible(IDatapoolVariable, String, IDatapool):

      String key = DatapoolKeyManager.getKeyInDatapool(datapool);
		  IDatapoolEquivalenceClass equivalenceClass =
		  getDefaultEquivalenceClass(datapool);
		 
      int variableCount = datapool.getVariableCount();
			String rowContents[] = new String[variableCount + 1];
			IDatapoolCell[] rowData = new IDatapoolCell[variableCount];
			rowContents[0] = String.valueOf(i);
			
org.eclipse.hyades.models.common.datapool.util.DatapoolEncryptManager.deencryptedCellInVarible(IDatapoolVariable, String, IDatapool):

      int variableCount = datapool.getVariableCount();
			String rowContents[] = new String[variableCount + 1];
			IDatapoolCell[] rowData = new IDatapoolCell[variableCount];
			rowContents[0] = String.valueOf(i);			

-There are several places where variables, imports, and methods are never used and need to be removed: 

The field DatapoolChangeKeyDialog.confirmKeyFieldForeground is never read locally	DatapoolChangeKeyDialog.java	org.eclipse.hyades.test.ui/src/org/eclipse/hyades/test/ui/datapool/internal/dialog	line 46
The field DatapoolChangeKeyDialog.datapool is never read locally	DatapoolChangeKeyDialog.java	org.eclipse.hyades.test.ui/src/org/eclipse/hyades/test/ui/datapool/internal/dialog	line 39
The field DatapoolChangeKeyDialog.defaultNameCounter is never read locally	DatapoolChangeKeyDialog.java	org.eclipse.hyades.test.ui/src/org/eclipse/hyades/test/ui/datapool/internal/dialog	line 56
The field DatapoolChangeKeyDialog.insertionVariableID is never read locally	DatapoolChangeKeyDialog.java	org.eclipse.hyades.test.ui/src/org/eclipse/hyades/test/ui/datapool/internal/dialog	line 54
The field DatapoolChangeKeyDialog.insertionVariableName is never read locally	DatapoolChangeKeyDialog.java	org.eclipse.hyades.test.ui/src/org/eclipse/hyades/test/ui/datapool/internal/dialog	line 55
The field DatapoolChangeKeyDialog.insertionVariables is never read locally	DatapoolChangeKeyDialog.java	org.eclipse.hyades.test.ui/src/org/eclipse/hyades/test/ui/datapool/internal/dialog	line 47
The field DatapoolChangeKeyDialog.nameErrorLabel is never read locally	DatapoolChangeKeyDialog.java	org.eclipse.hyades.test.ui/src/org/eclipse/hyades/test/ui/datapool/internal/dialog	line 48
The field DatapoolChangeKeyDialog.newKeyFieldForeground is never read locally	DatapoolChangeKeyDialog.java	org.eclipse.hyades.test.ui/src/org/eclipse/hyades/test/ui/datapool/internal/dialog	line 45
The field DatapoolChangeKeyDialog.oldKeyFieldForeground is never read locally	DatapoolChangeKeyDialog.java	org.eclipse.hyades.test.ui/src/org/eclipse/hyades/test/ui/datapool/internal/dialog	line 44
The field DatapoolChangeKeyDialog.typeErrorLabel is never read locally	DatapoolChangeKeyDialog.java	org.eclipse.hyades.test.ui/src/org/eclipse/hyades/test/ui/datapool/internal/dialog	line 49
The field DatapoolColumnDialog.okButton is never read locally	DatapoolColumnDialog.java	org.eclipse.hyades.test.ui/src/org/eclipse/hyades/test/ui/datapool/internal/dialog	line 77
The field DatapoolInputKeyDialog.logOnFieldForeground is never read locally	DatapoolInputKeyDialog.java	org.eclipse.hyades.test.ui/src/org/eclipse/hyades/test/ui/datapool/internal/dialog	line 39
The import java.util.Iterator is never used	PasswordCollection.java	org.eclipse.hyades.test.core/src/org/eclipse/hyades/test/core/testservices/resources	line 18
The import java.util.Map is never used	PasswordCollection.java	org.eclipse.hyades.test.core/src/org/eclipse/hyades/test/core/testservices/resources	line 19
The import org.eclipse.emf.ecore.EStructuralFeature is never used	DPLCellImpl.java	org.eclipse.tptp.platform.models/src-test/org/eclipse/hyades/models/common/datapool/impl	line 22
The local variable isKeyChanged is never read	DatapoolColumnDialog.java	org.eclipse.hyades.test.ui/src/org/eclipse/hyades/test/ui/datapool/internal/dialog	line 100	Java 
The local variable rowData is never read	DatapoolEncryptManager.java	org.eclipse.tptp.platform.models/src-test/org/eclipse/hyades/models/common/datapool/util	line 52	Java 
The local variable rowData is never read	DatapoolEncryptManager.java	org.eclipse.tptp.platform.models/src-test/org/eclipse/hyades/models/common/datapool/util	line 81	Java 
The method showErrMes(Shell, String) from the type DatapoolEditorExtension is never used locally	DatapoolEditorExtension.java	org.eclipse.hyades.test.ui/src/org/eclipse/hyades/test/ui/internal/editor/extension	line 402	Java 
The method showErrMes(Shell, String) from the type DatapoolExportWizard is never used locally	DatapoolExportWizard.java	org.eclipse.hyades.test.ui/src/org/eclipse/hyades/test/ui/internal/wizard	line 91	Java 

-In org.eclipse.hyades.test.common.testservices.resources.DatapoolPasswordProvider.getDatapoolPassword(String), change the method to:

    String result = null;
		try{
			
			result = ServiceInvoker.invokeService(getProviderName(), "method=getDatapoolList,args:testId={0}".concat(testId));
			
		}catch(UnconfiguredComptestAgentException e) {
			throw new UnknownTestServiceException(e);
		}
		
		return parseResult(result);
Comment 15 Paul Slauenwhite CLA 2008-02-22 13:53:48 EST
Hours worked for patch/UI reviews.

(In reply to comment #14)

Comments on the UI:

-In the Edit Variable dialog, there is extra space at the bottom that can be removed.  This extra space was part of the original dialog layout but this is a good opportunity to clean-up the layout.  This dialog should expand and contract depending on the elements included (e.g. Move).  Also, please add the Encrypted check-box and button at the bottom of the dialog.

-Encrypting a variable causes the cells for all rows in that variable to have ****** appear, despite not having any data in the cell.

-When editing a cell in an encrypted variable, the cell contains solid circles, one for each character of the cell value.  Since the number of asterisks is always 6, can we make both behaviors consistent.  I am favoring making the number of asterisks the same as the total number of characters of the cell value.

-The old behavior of the cell editor allowed users to select the cell with a single mouse click and start typing, which appears to be broken for encrypted variables.  Also, I added two variables and three rows but the cell in Varible1/row2 cannot be edited.

-The following exception was thrown when entering a string in a cell of an encrypted variable and then trying to edit it again:

java.lang.NumberFormatException: For input string: "as"
	at java.lang.NumberFormatException.forInputString(NumberFormatException.java:63)
	at java.lang.Integer.parseInt(Integer.java:490)
	at org.eclipse.hyades.models.common.util.EncryptionManager$RC4Encrypter.hexStringToByteArray(EncryptionManager.java:147)
	at org.eclipse.hyades.models.common.util.EncryptionManager$RC4Encrypter.decipherMessage(EncryptionManager.java:87)
	at org.eclipse.hyades.models.common.util.EncryptionManager.decrypt(EncryptionManager.java:38)
	at org.eclipse.hyades.test.ui.datapool.internal.control.DatapoolTable.startCellEditing(DatapoolTable.java:1438)
	at org.eclipse.hyades.test.ui.datapool.internal.control.DatapoolTable.access$17(DatapoolTable.java:1352)
	at org.eclipse.hyades.test.ui.datapool.internal.control.DatapoolTable$CursorKeyAdapter.keyPressed(DatapoolTable.java:865)
	at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:154)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:982)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1006)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:991)
	at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1019)
	at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1015)
	at org.eclipse.swt.widgets.Widget.wmChar(Widget.java:1331)
	at org.eclipse.swt.widgets.Control.WM_CHAR(Control.java:3883)
	at org.eclipse.swt.widgets.Canvas.WM_CHAR(Canvas.java:338)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:3776)
	at org.eclipse.swt.widgets.Canvas.windowProc(Canvas.java:334)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:4460)
	at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method)
	at org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:2333)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3369)
	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2392)
	at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2356)
	at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2222)
	at org.eclipse.ui.internal.Workbench$4.run(Workbench.java:474)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:288)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:469)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:106)
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:193)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:106)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:76)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:362)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:175)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:615)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:564)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:504)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1251)
	at org.eclipse.equinox.launcher.Main.main(Main.java:1227)

-You can remove DatapoolExportWizard_unencrypted from org.eclipse.hyades.test.ui/src/org/eclipse/hyades/test/ui/internal/resources/messages.properties and org.eclipse.hyades.test.ui.internal.resources.UiPluginResourceBundle.java and display the original message.

-You can remove DatapoolDialog_NEWKEYNULLMES from org.eclipse.hyades.test.ui/src/org/eclipse/hyades/test/ui/internal/resources/messages.properties and org.eclipse.hyades.test.ui.internal.resources.UiPluginResourceBundle.java since that condition is never reached in the code.

-You can remove DatapoolDialog_TRYAGAIN from org.eclipse.hyades.test.ui/src/org/eclipse/hyades/test/ui/internal/resources/messages.properties and org.eclipse.hyades.test.ui.internal.resources.UiPluginResourceBundle.java since this message is inconsistent.

-You can remove DatapoolDialog_NOTALLMATCH from org.eclipse.hyades.test.ui/src/org/eclipse/hyades/test/ui/internal/resources/messages.properties and org.eclipse.hyades.test.ui.internal.resources.UiPluginResourceBundle.java since it can be replaced by DatapoolDialog_ERRORDIALOGTITLE.

-The following messages are not used in org.eclipse.hyades.test.ui/src/org/eclipse/hyades/test/ui/internal/resources/messages.properties and org.eclipse.hyades.test.ui.internal.resources.UiPluginResourceBundle.java and can be removed:

DatapoolExportWizard_rightpass=You passed. Check Finish to complete.
DatapoolDialog_KEY=Key
DatapoolDialog_LOGONDIALOGTITLE=Log on
DatapoolDialog_ENCRYPTEDID=isencrypted
DatapoolDialog_ERRORFOREDITENCRYPTEDVALUE=The cell has been encrypted, please decrypted it before editing

-Suggested changes to org.eclipse.hyades.test.ui/src/org/eclipse/hyades/test/ui/internal/resources/messages.properties:

DatapoolExportWizard_encrypted= {0} is encrypted. Please enter the password.
DatapoolExportWizard_wrongpass=Incorrect password. Please enter the correct password.
DatapoolExportWizard_password=Password for {0}:
DatapoolDialog_ASSIGNKEYDIALOGTITLE=Set Password
DatapoolDialog_ORIGINKEYERRORMES=The old password is incorrect.
DatapoolDialog_OLDKEY=&Old Password:
DatapoolDialog_NEWKEY=&New Password:
DatapoolDialog_CONFIRMNEWKEY=&Confirm New Password:
DatapoolDialog_CHANGEKEY=&Modify Password
DatapoolDialog_ENCRYPTED=&Encrypt
DatapoolDialog_CHANGEKEYDIALOGTITLE=Change Password
DatapoolDialog_NEWKEYNOTCONFIRMMES=The passwords you typed do not match.
DatapoolDialog_WRONGLOGONKEYMES=The password you typed is incorrect.
DatapoolDialog_ERRORDIALOGTITLE=Error
DatapoolDialog_INPUTKEYDIALGOTITLE=Enter Password
DatapoolDialog_OK=OK
DatapoolDialog_PASSWORDSHINT=The password is not correct for each of the following encrypted datapools:\n\n
DatapoolDialog_INPUTPASSHINT=Please enter the password for each of the following encrypted datapools:

-The layout of the Input Password dialog (when launching a test) is too tight.  There needs to be more space in the margins, the input text filed should be the full length of the dialog, and the datapool label contains a border.

-The Input Passwpord dialog (when launching a test) should not enable the OK button until all of the test fields are entered.

-The 'The passwords do not match' dialog should show an error icon (not a warning icon).

-Remove the following from org.eclipse.hyades.test.ui/src/org/eclipse/hyades/test/ui/internal/resources/messages.properties and org.eclipse.hyades.test.ui.internal.resources.UiPluginResourceBundle.java and add to one of your constant classes:

DatapoolDialog_ENCRYPTEDDISPLAYVALUE=******
DatapoolDialog_SPLITMARK=::
DatapoolDialog_TRUE=true

-The Assign Password and Change Password dialogs should not enable the OK button unless all password fields have been entered.

-When I modified the password for a variable and clicked OK, the Input Passwpord dialog appeared, which it should not. 

-Probably related to the above point, I modified the password for a variable and clicked OK and clicked cancel on the Input Passwpord dialog.  Then I disabled encryption on the variable and the cells were not correctly decrypted:

ÙˆKÝ 

-Entering the wrong password in the Input Password dialog does not clear the text field when clicking OK in the error dialog.

-We should remove the challenge from the datapool when there are no more remaining encrypted variables.

-Disabling encryption on a variable after entering data into the cells of the variable causes the following exception:

java.lang.NumberFormatException: For input string: "on"
	at java.lang.NumberFormatException.forInputString(NumberFormatException.java:63)
	at java.lang.Integer.parseInt(Integer.java:481)
	at org.eclipse.hyades.models.common.util.EncryptionManager$RC4Encrypter.hexStringToByteArray(EncryptionManager.java:147)
	at org.eclipse.hyades.models.common.util.EncryptionManager$RC4Encrypter.decipherMessage(EncryptionManager.java:87)
	at org.eclipse.hyades.models.common.util.EncryptionManager.decrypt(EncryptionManager.java:38)
	at org.eclipse.hyades.models.common.datapool.util.DatapoolEncryptManager.deencryptedCellInVarible(DatapoolEncryptManager.java:88)
	at org.eclipse.hyades.test.ui.datapool.internal.control.DatapoolTable.editColumnAux(DatapoolTable.java:2174)
	at org.eclipse.hyades.test.ui.datapool.internal.control.DatapoolTable.access$2(DatapoolTable.java:2063)
	at org.eclipse.hyades.test.ui.datapool.internal.control.DatapoolTable$1.widgetSelected(DatapoolTable.java:182)
	at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:227)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:982)
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3760)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3371)
	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2392)
	at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2356)
	at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2222)
	at org.eclipse.ui.internal.Workbench$4.run(Workbench.java:474)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:288)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:469)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:106)
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:193)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:106)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:76)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:362)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:175)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:615)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:564)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:504)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1251)
	at org.eclipse.equinox.launcher.Main.main(Main.java:1227)
java.lang.NumberFormatException: For input string: "tw"
	at java.lang.NumberFormatException.forInputString(NumberFormatException.java:63)
	at java.lang.Integer.parseInt(Integer.java:481)
	at org.eclipse.hyades.models.common.util.EncryptionManager$RC4Encrypter.hexStringToByteArray(EncryptionManager.java:147)
	at org.eclipse.hyades.models.common.util.EncryptionManager$RC4Encrypter.decipherMessage(EncryptionManager.java:87)
	at org.eclipse.hyades.models.common.util.EncryptionManager.decrypt(EncryptionManager.java:38)
	at org.eclipse.hyades.models.common.datapool.util.DatapoolEncryptManager.deencryptedCellInVarible(DatapoolEncryptManager.java:88)
	at org.eclipse.hyades.test.ui.datapool.internal.control.DatapoolTable.editColumnAux(DatapoolTable.java:2174)
	at org.eclipse.hyades.test.ui.datapool.internal.control.DatapoolTable.access$2(DatapoolTable.java:2063)
	at org.eclipse.hyades.test.ui.datapool.internal.control.DatapoolTable$1.widgetSelected(DatapoolTable.java:182)
	at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:227)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:982)
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3760)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3371)
	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2392)
	at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2356)
	at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2222)
	at org.eclipse.ui.internal.Workbench$4.run(Workbench.java:474)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:288)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:469)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:106)
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:193)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:106)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:76)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:362)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:175)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:615)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:564)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:504)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1251)
	at org.eclipse.equinox.launcher.Main.main(Main.java:1227)

java.lang.ClassCastException: org.eclipse.swt.widgets.Label incompatible with org.eclipse.jface.viewers.CellEditor
	at org.eclipse.hyades.test.ui.datapool.internal.control.DatapoolTable.startCellEditing(DatapoolTable.java:1440)
	at org.eclipse.hyades.test.ui.datapool.internal.control.DatapoolTable.access$17(DatapoolTable.java:1352)
	at org.eclipse.hyades.test.ui.datapool.internal.control.DatapoolTable$CursorMouseAdapter.mouseDoubleClick(DatapoolTable.java:942)
	at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:182)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:982)
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3760)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3371)
	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2392)
	at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2356)
	at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2222)
	at org.eclipse.ui.internal.Workbench$4.run(Workbench.java:474)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:288)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:469)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:106)
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:193)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:106)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:76)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:362)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:175)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:615)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:564)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:504)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1251)
	at org.eclipse.equinox.launcher.Main.main(Main.java:1227)

-In the Export Datapool wizard page two, there is extra space at the bottom of the wizard that could be used by datapool text area.  Also, the text area should dynamically expand and contract depending on the elements included.  The sample applies to the import dialog. 

-When exported an encrypted datapool, the DatapoolExportWizard_encrypted message should cause an error icon in the wizard, not a warning icon.

-When exporting a datapool that did have an encrypted variable, the Export Datapool wizard page two displays 'Password for xxx.datapool', which it should not.

-Test execution using the local_deploymnet (Run As > Test) does not ask for the user to specify the password and decrypt encrypted variables.

-When the user enters the password for an encrypted datapool, we should have an error message/icon/etc. in the input dialog/page (instead of a separate error dialog) to be consistent with the Eclipse UI.  Thoughts?
Comment 16 Xin Ying Huang CLA 2008-02-25 04:24:30 EST
Created attachment 90609 [details]
Request for UT test cases review 

There has 3 packages in this rar file :

 1) org.eclipse.hyades.test.core.tests : contains Juint test case for our extension piont implementation files 

 2) org.eclipse.hyades.test.ui.datapool.tests : contains manual test and AGR test for datapool editor UI . for AGR test , I can not finish all the steps ,so only creates several steps for it .

 3)org.eclipse.tptp.test.testservices.tests : contains Juint test for test service implementation files .
Comment 17 Paul Slauenwhite CLA 2008-02-26 07:41:23 EST
(In reply to comment #16)
> Created an attachment (id=90609) [details]
> Request for UT test cases review 
> 
> There has 3 packages in this rar file :
> 
>  1) org.eclipse.hyades.test.core.tests : contains Juint test case for our
> extension piont implementation files 
> 
>  2) org.eclipse.hyades.test.ui.datapool.tests : contains manual test and AGR
> test for datapool editor UI . for AGR test , I can not finish all the steps ,so
> only creates several steps for it .
> 
>  3)org.eclipse.tptp.test.testservices.tests : contains Juint test for test
> service implementation files .
> 
> 
> 

This file only contains the XMI for a JUnit Plug-in test suite.  Please attach all of the test files for review.
Comment 18 Xin Ying Huang CLA 2008-02-27 08:26:49 EST
Created attachment 90847 [details]
Pls try this ZIP file for UT test cases

There has 3 packages in this ZIP file :
 
 1) org.eclipse.hyades.test.core.tests : contains Juint test case for our
extension piont implementation files 

 2) org.eclipse.hyades.test.ui.datapool.tests : contains manual test and AGR
 test for datapool editor UI . for AGR test , I can not finish all the steps ,so
 only creates several steps for it .

 3)org.eclipse.tptp.test.testservices.tests : contains Juint test for test
 service implementation files .
Comment 19 Xin Ying Huang CLA 2008-03-03 01:36:27 EST
Hi Paul :

I collect the comments both in bugzilla  Comment #15 & #14 ,below are some of them I want to confirm with you :

In Comment #15 :

1) -In the Edit Variable dialog, there is extra space at the bottom that can be
removed.  This extra space was part of the original dialog layout but this is a
good opportunity to clean-up the layout.  This dialog should expand and
contract depending on the elements included (e.g. Move).  Also, please add the
Encrypted check-box and button at the bottom of the dialog. 

 Answer : Do we have to follow this way ? look's like it's complicated and I do not how to let this dialog's length be dynamic  :

         (OK button is hinded by error msg labels if label's number is more than 1 )

     Do you have any good suggestion about it ? if we can solve this issue , then some issues behind can also be solved in the same way .


2) 
-Encrypting a variable causes the cells for all rows in that variable to have
****** appear, despite not having any data in the cell.

 A : I debugged the code ,looks like this error caused by the below exception :
   
     java.security.NoSuchAlgorithmException: Cannot find any provider supporting RC4
                   at javax.crypto.Cipher.getInstance(DashoA12275)
                   at org.eclipse.hyades.models.common.util.EncryptionManager$RC4Encrypter.cipherMessage(EncryptionManager.java:60)
                   at org.eclipse.hyades.models.common.util.EncryptionManager.encrypt(EncryptionManager.java:32)
                   at org.eclipse.hyades.models.common.datapool.util.DatapoolEncryptManager.encryptedCellInVarible(DatapoolEncryptManager.java:52)
                   at org.eclipse.hyades.test.ui.datapool.internal.control.DatapoolTable.editColumnAux(DatapoolTable.java:2166)
                   at org.eclipse.hyades.test.ui.datapool.internal.control.DatapoolTable.access$2(DatapoolTable.java:2063)
                   at org.eclipse.hyades.test.ui.datapool.internal.control.DatapoolTable$1.widgetSelected(DatapoolTable.java:182)
                   at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:227)
                   at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
                   at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:982)
                   at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3760)
                   at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3371)
                   at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2392)
                   at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2356)
                   at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2222)
                   at org.eclipse.ui.internal.Workbench$4.run(Workbench.java:474)
                   at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:288)
                   at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:469)
                   at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
                   at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:106)
                   at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:193)
                   at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:106)
                   at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:76)
                   at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:362)
                   at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:175)
                   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                   at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
                   at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
                   at java.lang.reflect.Method.invoke(Unknown Source)
                   at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:564)
                   at org.eclipse.equinox.launcher.Main.basicRun(Main.java:504)
                   at org.eclipse.equinox.launcher.Main.run(Main.java:1251)
                   at org.eclipse.equinox.launcher.Main.main(Main.java:1227)  

      I used both JDK1.4.2_16 & JDK1.5.06  and never met this error before ,whether there are have any change in latest code ?


3) -When editing a cell in an encrypted variable, the cell contains solid circles,
    one for each character of the cell value.  Since the number of asterisks is
    always 6, can we make both behaviors consistent.  I am favoring making the
    number of asterisks the same as the total number of characters of the cell value.

     A : Sorry ,it's can not be implemented because of we can not get password for the datapool while opening it ,so we can not change encrypted variable's value back  into it's real value and can not get it's real value's length .


4) -The old behavior of the cell editor allowed users to select the cell with a
     single mouse click and start typing, which appears to be broken for encrypted
     variables.  Also, I added two variables and three rows but the cell in
     Varible1/row2 cannot be edited.

    A : Yes , I also found this issue ,but I remember we didn't have this issue in earlier code ,not sure if it's has some relation with above Comment 2)

   
 5)
-The following exception was thrown when entering a string in a cell of an
encrypted variable and then trying to edit it again:

java.lang.NumberFormatException: For input string: "as"
        at
java.lang.NumberFormatException.forInputString(NumberFormatException.java:63)
        at java.lang.Integer.parseInt(Integer.java:490)
        at
org.eclipse.hyades.models.common.util.EncryptionManager$RC4Encrypter.hexStringToByteArray(EncryptionManager.java:147)
        at
org.eclipse.hyades.models.common.util.EncryptionManager$RC4Encrypter.decipherMessage(EncryptionManager.java:87)
        at
org.eclipse.hyades.models.common.util.EncryptionManager.decrypt(EncryptionManager.java:38)
        at
org.eclipse.hyades.test.ui.datapool.internal.control.DatapoolTable.startCellEditing(DatapoolTable.java:1438)
        at
org.eclipse.hyades.test.ui.datapool.internal.control.DatapoolTable.access$17(DatapoolTable.java:1352)
        at
org.eclipse.hyades.test.ui.datapool.internal.control.DatapoolTable$CursorKeyAdapter.keyPressed(DatapoolTable.java:865)
        at
org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:154)
        at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:982)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1006)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:991)
        at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1019)
        at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1015)
        at org.eclipse.swt.widgets.Widget.wmChar(Widget.java:1331)
        at org.eclipse.swt.widgets.Control.WM_CHAR(Control.java:3883)
        at org.eclipse.swt.widgets.Canvas.WM_CHAR(Canvas.java:338)
        at org.eclipse.swt.widgets.Control.windowProc(Control.java:3776)
        at org.eclipse.swt.widgets.Canvas.windowProc(Canvas.java:334)
        at org.eclipse.swt.widgets.Display.windowProc(Display.java:4460)
        at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method)
        at org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:2333)
        at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3369)
        at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2392)
        at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2356)
        at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2222)
        at org.eclipse.ui.internal.Workbench$4.run(Workbench.java:474)
        at
org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:288)
        at
org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:469)
        at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
        at
org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:106)
        at
org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:193)
        at
org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:106)
        at
org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:76)
        at
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:362)
        at
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:175)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)
        at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:615)
        at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:564)
        at org.eclipse.equinox.launcher.Main.basicRun(Main.java:504)
        at org.eclipse.equinox.launcher.Main.run(Main.java:1251)
        at org.eclipse.equinox.launcher.Main.main(Main.java:1227)


   A : Can you tell the steps about how to recur this error ? I want to find where is wrong ,thanks 


    
6) -You can remove DatapoolExportWizard_unencrypted from
org.eclipse.hyades.test.ui/src/org/eclipse/hyades/test/ui/internal/resources/messages.properties
and org.eclipse.hyades.test.ui.internal.resources.UiPluginResourceBundle.java
and display the original message.
  
  -You can remove DatapoolDialog_NEWKEYNULLMES from
org.eclipse.hyades.test.ui/src/org/eclipse/hyades/test/ui/internal/resources/messages.properties
and org.eclipse.hyades.test.ui.internal.resources.UiPluginResourceBundle.java
since that condition is never reached in the code.

  -You can remove DatapoolDialog_TRYAGAIN from
org.eclipse.hyades.test.ui/src/org/eclipse/hyades/test/ui/internal/resources/messages.properties
and org.eclipse.hyades.test.ui.internal.resources.UiPluginResourceBundle.java
since this message is inconsistent.

  -You can remove DatapoolDialog_NOTALLMATCH from
org.eclipse.hyades.test.ui/src/org/eclipse/hyades/test/ui/internal/resources/messages.properties
and org.eclipse.hyades.test.ui.internal.resources.UiPluginResourceBundle.java
since it can be replaced by DatapoolDialog_ERRORDIALOGTITLE.


   A : Sorry ,they're used in my code ....


7) -In the Export Datapool wizard page two, there is extra space at the bottom of
the wizard that could be used by datapool text area.  Also, the text area
should dynamically expand and contract depending on the elements included.  The
sample applies to the import dialog. 

   -When the user enters the password for an encrypted datapool, we should have an
error message/icon/etc. in the input dialog/page (instead of a separate error
dialog) to be consistent with the Eclipse UI.  Thoughts?

   A : I think this issue is the same with above 1) 


8) -Test execution using the local_deploymnet (Run As > Test) does not ask for the
user to specify the password and decrypt encrypted variables.

   A : I tried it again ,looks like it also ask for user to specify the password when using local_deployment .



In Comment #14 

1)
-Is the scenario of not having the Java Cryptography Architecture (JCA) or the
provider for the RC4/MD5 hash algorithms (java.security.MessageDigest) not
available at run-time environment been handled and tested? 


   A : I think it's has some relation with  above's 2) in Comment #15 


2) -Since the TPTP EMF models are generated, we will have to update the Rose model
(/org.eclipse.tptp.platform.models/rose) with the new DPLVariable#Encrypted and
DPLDatapool#Challenge properties.  In addition, we will need to update the test
model class diagram on the TPTP web site
(http://www.eclipse.org/tptp/platform/documents/index.php).  Please open a
child defect against the Test.Models component for this work.

   A  : I will do it with other documentations  after fix issues in code 


I will confirm with you if I have any unclear about your other comments ,thanks !

Comment 20 Paul Slauenwhite CLA 2008-03-03 14:07:41 EST
(In reply to comment #19)

> 1) -In the Edit Variable dialog, there is extra space at the bottom that can be
> removed.  This extra space was part of the original dialog layout but this is a
> good opportunity to clean-up the layout.  This dialog should expand and
> contract depending on the elements included (e.g. Move).  Also, please add the
> Encrypted check-box and button at the bottom of the dialog. 
> 
>  Answer : Do we have to follow this way ? look's like it's complicated and I do
> not how to let this dialog's length be dynamic  :
> 
>          (OK button is hinded by error msg labels if label's number is more
> than 1 )
> 
>      Do you have any good suggestion about it ? if we can solve this issue ,
> then some issues behind can also be solved in the same way .

Looking at the code, this appears to require a significant amount of rewrite.  Given the amount of work remaining in the 4.5 release and the amount of resource, we should create a separate defect for this refactoring.  Please open a dependant defect to be considered in the next release.

> 2) 
> -Encrypting a variable causes the cells for all rows in that variable to have
> ****** appear, despite not having any data in the cell.
> 
>  A : I debugged the code ,looks like this error caused by the below exception :
> 
>      java.security.NoSuchAlgorithmException: Cannot find any provider
> supporting RC4
>                    at javax.crypto.Cipher.getInstance(DashoA12275)
>                    at
> org.eclipse.hyades.models.common.util.EncryptionManager$RC4Encrypter.cipherMessage(EncryptionManager.java:60)
>                    at
> org.eclipse.hyades.models.common.util.EncryptionManager.encrypt(EncryptionManager.java:32)
>                    at
> org.eclipse.hyades.models.common.datapool.util.DatapoolEncryptManager.encryptedCellInVarible(DatapoolEncryptManager.java:52)
>                    at
> org.eclipse.hyades.test.ui.datapool.internal.control.DatapoolTable.editColumnAux(DatapoolTable.java:2166)
>                    at
> org.eclipse.hyades.test.ui.datapool.internal.control.DatapoolTable.access$2(DatapoolTable.java:2063)
>                    at
> org.eclipse.hyades.test.ui.datapool.internal.control.DatapoolTable$1.widgetSelected(DatapoolTable.java:182)
>                    at
> org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:227)
>                    at
> org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
>                    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:982)
>                    at
> org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3760)
>                    at
> org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3371)
>                    at
> org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2392)
>                    at
> org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2356)
>                    at
> org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2222)
>                    at
> org.eclipse.ui.internal.Workbench$4.run(Workbench.java:474)
>                    at
> org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:288)
>                    at
> org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:469)
>                    at
> org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
>                    at
> org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:106)
>                    at
> org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:193)
>                    at
> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:106)
>                    at
> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:76)
>                    at
> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:362)
>                    at
> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:175)
>                    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
> Method)
>                    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown
> Source)
>                    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown
> Source)
>                    at java.lang.reflect.Method.invoke(Unknown Source)
>                    at
> org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:564)
>                    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:504)
>                    at org.eclipse.equinox.launcher.Main.run(Main.java:1251)
>                    at org.eclipse.equinox.launcher.Main.main(Main.java:1227)  
> 
>       I used both JDK1.4.2_16 & JDK1.5.06  and never met this error before
> ,whether there are have any change in latest code ?

I did have the JCA packaged in my JRE.  How would this affect the number of *s in the cell?

This is the scenario I mentioned that the Java Cryptography Architecture (JCA) or the provider for the RC4/MD5 hash algorithms (java.security.MessageDigest) not available at run-time environment.  Not all JREs packages these libraries.  We need to handle/test this scenario but catching the error (e.g. when the first variable is marked as encrypted) instructing the user that encrypted datapools cannot be created used with the JCA or java.security.MessageDigest.  The same will have to be handled on the runner side, since it may (and most often is) a different JRE than the workbench.

> 3) -When editing a cell in an encrypted variable, the cell contains solid
> circles,
>     one for each character of the cell value.  Since the number of asterisks is
>     always 6, can we make both behaviors consistent.  I am favoring making the
>     number of asterisks the same as the total number of characters of the cell
> value.
> 
>      A : Sorry ,it's can not be implemented because of we can not get password
> for the datapool while opening it ,so we can not change encrypted variable's
> value back  into it's real value and can not get it's real value's length .

I am not sure I understand.  I thought we cached the password until the editor/Eclipse was closed.  Either way, the length of the password field is the number of *s we need.

> 4) -The old behavior of the cell editor allowed users to select the cell with a
>      single mouse click and start typing, which appears to be broken for
> encrypted
>      variables.  Also, I added two variables and three rows but the cell in
>      Varible1/row2 cannot be edited.
> 
>     A : Yes , I also found this issue ,but I remember we didn't have this issue
> in earlier code ,not sure if it's has some relation with above Comment 2)

I would assume it is caused by the new password field for the cell, instead of a text field.  Can you verify?  We may need to provide our own mouse listener to give focus to the password field to emulate the old behavior.

>  5)
> -The following exception was thrown when entering a string in a cell of an
> encrypted variable and then trying to edit it again:
> 
> java.lang.NumberFormatException: For input string: "as"
>         at
> java.lang.NumberFormatException.forInputString(NumberFormatException.java:63)
>         at java.lang.Integer.parseInt(Integer.java:490)
>         at
> org.eclipse.hyades.models.common.util.EncryptionManager$RC4Encrypter.hexStringToByteArray(EncryptionManager.java:147)
>         at
> org.eclipse.hyades.models.common.util.EncryptionManager$RC4Encrypter.decipherMessage(EncryptionManager.java:87)
>         at
> org.eclipse.hyades.models.common.util.EncryptionManager.decrypt(EncryptionManager.java:38)
>         at
> org.eclipse.hyades.test.ui.datapool.internal.control.DatapoolTable.startCellEditing(DatapoolTable.java:1438)
>         at
> org.eclipse.hyades.test.ui.datapool.internal.control.DatapoolTable.access$17(DatapoolTable.java:1352)
>         at
> org.eclipse.hyades.test.ui.datapool.internal.control.DatapoolTable$CursorKeyAdapter.keyPressed(DatapoolTable.java:865)
>         at
> org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:154)
>         at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
>         at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:982)
>         at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1006)
>         at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:991)
>         at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1019)
>         at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1015)
>         at org.eclipse.swt.widgets.Widget.wmChar(Widget.java:1331)
>         at org.eclipse.swt.widgets.Control.WM_CHAR(Control.java:3883)
>         at org.eclipse.swt.widgets.Canvas.WM_CHAR(Canvas.java:338)
>         at org.eclipse.swt.widgets.Control.windowProc(Control.java:3776)
>         at org.eclipse.swt.widgets.Canvas.windowProc(Canvas.java:334)
>         at org.eclipse.swt.widgets.Display.windowProc(Display.java:4460)
>         at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method)
>         at org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:2333)
>         at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3369)
>         at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2392)
>         at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2356)
>         at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2222)
>         at org.eclipse.ui.internal.Workbench$4.run(Workbench.java:474)
>         at
> org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:288)
>         at
> org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:469)
>         at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
>         at
> org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:106)
>         at
> org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:193)
>         at
> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:106)
>         at
> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:76)
>         at
> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:362)
>         at
> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:175)
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)
>         at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>         at java.lang.reflect.Method.invoke(Method.java:615)
>         at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:564)
>         at org.eclipse.equinox.launcher.Main.basicRun(Main.java:504)
>         at org.eclipse.equinox.launcher.Main.run(Main.java:1251)
>         at org.eclipse.equinox.launcher.Main.main(Main.java:1227)
> 
> 
>    A : Can you tell the steps about how to recur this error ? I want to find
> where is wrong ,thanks 

1) Enrypt a variable.
2) Enter a value in one of the cells.
3) Attempt to edit the same cell.

> 6) -You can remove DatapoolExportWizard_unencrypted from
> org.eclipse.hyades.test.ui/src/org/eclipse/hyades/test/ui/internal/resources/messages.properties
> and org.eclipse.hyades.test.ui.internal.resources.UiPluginResourceBundle.java
> and display the original message.
> 
>   -You can remove DatapoolDialog_NEWKEYNULLMES from
> org.eclipse.hyades.test.ui/src/org/eclipse/hyades/test/ui/internal/resources/messages.properties
> and org.eclipse.hyades.test.ui.internal.resources.UiPluginResourceBundle.java
> since that condition is never reached in the code.
> 
>   -You can remove DatapoolDialog_TRYAGAIN from
> org.eclipse.hyades.test.ui/src/org/eclipse/hyades/test/ui/internal/resources/messages.properties
> and org.eclipse.hyades.test.ui.internal.resources.UiPluginResourceBundle.java
> since this message is inconsistent.
> 
>   -You can remove DatapoolDialog_NOTALLMATCH from
> org.eclipse.hyades.test.ui/src/org/eclipse/hyades/test/ui/internal/resources/messages.properties
> and org.eclipse.hyades.test.ui.internal.resources.UiPluginResourceBundle.java
> since it can be replaced by DatapoolDialog_ERRORDIALOGTITLE.
> 
> 
>    A : Sorry ,they're used in my code ....

Yes, but there are reasons (see above) why each should be removed from the resource bundle, resource bundle class, and any code that references them.  For example, for DatapoolExportWizard_unencrypted, display the original message.

> 7) -In the Export Datapool wizard page two, there is extra space at the bottom
> of
> the wizard that could be used by datapool text area.  Also, the text area
> should dynamically expand and contract depending on the elements included.  The
> sample applies to the import dialog. 
> 
>    -When the user enters the password for an encrypted datapool, we should have
> an
> error message/icon/etc. in the input dialog/page (instead of a separate error
> dialog) to be consistent with the Eclipse UI.  Thoughts?
> 
>    A : I think this issue is the same with above 1) 

Yes..

> 8) -Test execution using the local_deploymnet (Run As > Test) does not ask for
> the
> user to specify the password and decrypt encrypted variables.
> 
>    A : I tried it again ,looks like it also ask for user to specify the
> password when using local_deployment .

Yes, only if the launch configuration (with an artifact containing an encrypted datapool) has been created for the test suite.  Try deleting all your launch configurations and trying again.

> In Comment #14 
> 
> 1)
> -Is the scenario of not having the Java Cryptography Architecture (JCA) or the
> provider for the RC4/MD5 hash algorithms (java.security.MessageDigest) not
> available at run-time environment been handled and tested? 
> 
> 
>    A : I think it's has some relation with  above's 2) in Comment #15 

Yes.

> 2) -Since the TPTP EMF models are generated, we will have to update the Rose
> model
> (/org.eclipse.tptp.platform.models/rose) with the new DPLVariable#Encrypted and
> DPLDatapool#Challenge properties.  In addition, we will need to update the test
> model class diagram on the TPTP web site
> (http://www.eclipse.org/tptp/platform/documents/index.php).  Please open a
> child defect against the Test.Models component for this work.
> 
>    A  : I will do it with other documentations  after fix issues in code 

I see you opened https://bugs.eclipse.org/bugs/show_bug.cgi?id=221097.
Comment 21 Paul Slauenwhite CLA 2008-03-03 14:45:28 EST
(In reply to comment #16)
> Created an attachment (id=90609) [details]
> Request for UT test cases review 

Looks good.  All of the TPTP test suites need to have their behavior defined (see the Behavior tab).

> There has 3 packages in this rar file :
> 
>  1) org.eclipse.hyades.test.core.tests : contains Juint test case for our
> extension piont implementation files 

-The org.eclipse.hyades.test.core.internal.launch.datapool.extensions package needs to be exported from the org.eclipse.hyades.test.core plug-in to compile the JUnit test code.

>  2) org.eclipse.hyades.test.ui.datapool.tests : contains manual test and AGR
> test for datapool editor UI . for AGR test , I can not finish all the steps ,so
> only creates several steps for it .

-Please use http://www.eclipse.org/tptp/home/documents/process/TPTP_Manual_Test_Case_Generator.html to generate the description of your manual test cases.

-What were the limitations when using the AGR?  We should have AGR test suites for the manual test suite since there are no additional resources to run these new manual test suites for each test pass.  That said, any use cases that cannot be automated using the AGR must be covered as manual tests.  

-You should create specific test cases for any scenarios that we find when reviewing the patch (e.g. JCA not available).

>  3)org.eclipse.tptp.test.testservices.tests : contains Juint test for test
> service implementation files .

-The org.eclipse.hyades.test.core.testservices.resources package needs to be exported from the org.eclipse.hyades.test.core plug-in to compile the JUnit test code.

-The org.eclipse.tptp.test.testservices.tests plug-in has to require the org.eclipse.hyades.test.core plug-in to compile the JUnit test code.
Comment 22 Xin Ying Huang CLA 2008-03-04 03:49:28 EST
Created attachment 91486 [details]
Create a new patch after updated code

  I fixed most of issues in feedback of code review ,for those can not be solve in this release , I opened defects for them .
  
  I will update UT test cases tomorrow .

  Since 13,March is the 45 release API freeze end day ,let's finish code related works in this week ,then I will have some time to do some documentation works in next week ,thanks .
Comment 23 Xin Ying Huang CLA 2008-03-05 02:00:12 EST
Created attachment 91605 [details]
Updated UT test cases

Issues in last ZIP file :

 1)-The org.eclipse.hyades.test.core.internal.launch.datapool.extensions package needs to be exported from the org.eclipse.hyades.test.core plug-in to compile the JUnit test code.

 Answer : fixed .

 2) -Please use
http://www.eclipse.org/tptp/home/documents/process/TPTP_Manual_Test_Case_Generator.html to generate the description of your manual test cases.
 A : fixed .

3)-The org.eclipse.hyades.test.core.testservices.resources package needs to be
exported from the org.eclipse.hyades.test.core plug-in to compile the JUnit
test code.

-The org.eclipse.tptp.test.testservices.tests plug-in has to require the
org.eclipse.hyades.test.core plug-in to compile the JUnit test code.

  A : fixed 

 
4) -What were the limitations when using the AGR?  We should have AGR test suites for the manual test suite since there are no additional resources to run these new manual test suites for each test pass.  That said, any use cases that cannot be automated using the AGR must be covered as manual tests. 

  A : AGR test must uses absolute directory for the CVS files used while importing a CSV file to generate a datapool .if the directory is changed that's will make a error . So I can not create AGR testsuite in current release ,Can we leave it into later release ?


5)-You should create specific test cases for any scenarios that we find when
reviewing the patch (e.g. JCA not available).

 A: Looks like it's a huge task ,Can we leave it into later version since there are no such test case to handle execption scenario in current release ? thanks very much !
Comment 24 Paul Slauenwhite CLA 2008-03-06 08:54:53 EST
(In reply to comment #22)
> Created an attachment (id=91486) [details]
> Create a new patch after updated code
> 
>   I fixed most of issues in feedback of code review ,for those can not be solve
> in this release , I opened defects for them .
> 
>   I will update UT test cases tomorrow .
> 
>   Since 13,March is the 45 release API freeze end day ,let's finish code
> related works in this week ,then I will have some time to do some documentation
> works in next week ,thanks .

Hi Xue, 

I cannot apply this patch given the recent changes in CVS.  Since you are more familiar with the code in this patch than I am, can you please refactor the patch for the latest code in CVS (HEAD).  Note, the code in CVS (HEAD) will not change until we integrate this new patch.

Comment 25 Paul Slauenwhite CLA 2008-03-06 08:57:05 EST
(In reply to comment #24)

> Hi Xue, 

Sorry, Xie.
Comment 26 Paul Slauenwhite CLA 2008-03-06 09:04:10 EST
(In reply to comment #23)

Looks good.

> 4) -What were the limitations when using the AGR?  We should have AGR test
> suites for the manual test suite since there are no additional resources to run
> these new manual test suites for each test pass.  That said, any use cases that
> cannot be automated using the AGR must be covered as manual tests. 
> 
>   A : AGR test must uses absolute directory for the CVS files used while
> importing a CSV file to generate a datapool .if the directory is changed that's
> will make a error . So I can not create AGR testsuite in current release ,Can
> we leave it into later release ?

In the Behavor tab of the AGR test suite editor, you can select the user inputs for a specific invocation of a test case and use Eclipse variables to resolve the paths during playback.  This allows the test author to put all of the dependent files in a directory (e.g. resources) of the test plug-in in the workspace and resolve this file path during playback without knowing the workspace location.

> 5)-You should create specific test cases for any scenarios that we find when
> reviewing the patch (e.g. JCA not available).
> 
>  A: Looks like it's a huge task ,Can we leave it into later version since there
> are no such test case to handle execption scenario in current release ? thanks
> very much !

This is part of the delivery criteria for the enhancement.  The goal is not to test every scenario but to cover all of the major use cases and the major error conditions.

We also need to write enablement and TVT test cases for this new function by March 14:

Writing translation verification test cases:  http://www.eclipse.org/tptp/home/documents/process/test/tvt.html

Writing enablement test cases:
http://www.eclipse.org/tptp/home/documents/process/test/enablement.html


Comment 27 Xin Ying Huang CLA 2008-03-10 07:37:12 EDT
Created attachment 92023 [details]
Lastest patch for this feature

Pls apply this new patch 

BTW ,I see code is changing after March,7 in CVS .Pls help me modify the minor errors if has ,thanks ....
Comment 28 Xin Ying Huang CLA 2008-03-10 07:40:41 EDT
Created attachment 92024 [details]
TVT for this feature

I'm not very sure about how to create enablement test ,whether I just need paste screen shot into DOC in order to write enablement test ?
Comment 29 Xin Ying Huang CLA 2008-03-10 07:41:48 EDT
Created attachment 92025 [details]
Documents update for this feature
Comment 30 Xin Ying Huang CLA 2008-03-11 04:18:31 EDT
Created attachment 92132 [details]
Updated TVT and Enablement tests for this feature
Comment 31 Paul Slauenwhite CLA 2008-03-11 07:07:32 EDT
(In reply to comment #30)
> Created an attachment (id=92132) [details]
> Updated TVT and Enablement tests for this feature
> 

Reviewed and looks great!  Thanks.
Comment 32 Paul Slauenwhite CLA 2008-03-11 07:11:07 EDT
(In reply to comment #29)
> Created an attachment (id=92025) [details]
> Documents update for this feature
> 

Reviewed.  Thanks.
Comment 33 Paul Slauenwhite CLA 2008-03-11 07:13:43 EDT
(In reply to comment #28)
> Created an attachment (id=92024) [details]
> TVT for this feature
> 
> I'm not very sure about how to create enablement test ,whether I just need
> paste screen shot into DOC in order to write enablement test ?
> 

Reviewed.  Both the TVT and enablement (see comment #30) TCs look fine.
Comment 34 Paul Slauenwhite CLA 2008-03-11 07:15:30 EDT
(In reply to comment #27)
> Created an attachment (id=92023) [details]
> Lastest patch for this feature
> 
> Pls apply this new patch 
> 
> BTW ,I see code is changing after March,7 in CVS .Pls help me modify the minor
> errors if has ,thanks ....
> 

Thanks Xin.  Yes, I will refactor the patch for my edits after March 7.  I will do the final review on this path on Wednesday.
Comment 35 Paul Slauenwhite CLA 2008-03-11 07:19:34 EDT
(In reply to comment #25)
> (In reply to comment #24)
> 
> > Hi Xue, 
> 
> Sorry, Xie.
> 

Sorry (again) Xin.
Comment 36 Paul Slauenwhite CLA 2008-03-11 07:20:44 EDT
(In reply to comment #26)

> > 5)-You should create specific test cases for any scenarios that we find when
> > reviewing the patch (e.g. JCA not available).
> > 
> >  A: Looks like it's a huge task ,Can we leave it into later version since there
> > are no such test case to handle execption scenario in current release ? thanks
> > very much !
> 
> This is part of the delivery criteria for the enhancement.  The goal is not to
> test every scenario but to cover all of the major use cases and the major error
> conditions.

Are there any further updates to the UTs?
Comment 37 Xin Ying Huang CLA 2008-03-12 05:59:19 EDT
(In reply to comment #36)
> (In reply to comment #26)
> > > 5)-You should create specific test cases for any scenarios that we find when
> > > reviewing the patch (e.g. JCA not available).
> > > 
> > >  A: Looks like it's a huge task ,Can we leave it into later version since there
> > > are no such test case to handle execption scenario in current release ? thanks
> > > very much !
> > 
> > This is part of the delivery criteria for the enhancement.  The goal is not to
> > test every scenario but to cover all of the major use cases and the major error
> > conditions.
> Are there any further updates to the UTs?


Paul , I do not think  there are more further updates to UTs due to my tight schedule ,thanks !

Comment 38 Paul Slauenwhite CLA 2008-03-12 08:00:28 EDT
(In reply to comment #37)

> Paul , I do not think  there are more further updates to UTs due to my tight
> schedule ,thanks !

I can appreciate your schedule but the UTs are not complete.  This is part of the delivery criteria for the enhancement.  As a compromise, please provide a test case for the scenario when the JCA is not available and the Component Lead will handle the test automation in the next release.

Comment 39 Paul Slauenwhite CLA 2008-03-12 14:54:03 EDT
Created attachment 92353 [details]
Refactored lastest patch for this feature.

Xin, your patch contained the generated org.eclipse.hyades.test.tools.core.internal.java.codegen classes that did not need to be included.
Comment 40 Paul Slauenwhite CLA 2008-03-12 15:30:28 EDT
(In reply to comment #34)

Reviewed with comments:


Comment #14:

-There are still outstanding comments that need to be addressed before this enhancement can be resolved (note, I6 development has been extended to March 21).


Comment #15:

-There are still outstanding comments that need to be addressed before this enhancement can be resolved (note, I6 development has been extended to March 21).


Comment #20:

-Did you open the dependent defect for #1?

-I am still seeing the symptoms in #2, despite having the JCA packaged in my JRE.  This is also the scenario that we need a test case to test.

-For #3, we need to make the number of asterisks the same as the length of the password field.  When the user selects the field, it displays a solid circle for each character, so there is no security concern for making the number of asterisks the same as the length of the password field.

-I am still seeing the symptoms in #4.

-#6 is not done.

-I am still seeing the symptoms in #8.
Comment 41 Paul Slauenwhite CLA 2008-03-12 15:30:53 EDT
Joe, can you please test the patch and provide your comments?
Comment 42 Paul Slauenwhite CLA 2008-03-12 16:07:08 EDT
Please update the number of hours worked on this enhancement.
Comment 43 Xin Ying Huang CLA 2008-03-13 03:25:29 EDT
(In reply to comment #40)
> (In reply to comment #34)
> Reviewed with comments:
> Comment #14:
> -There are still outstanding comments that need to be addressed before this
> enhancement can be resolved (note, I6 development has been extended to March
> 21).

Could you pls tell me which comments I should address in Comment #14 ?

> Comment #15:
> -There are still outstanding comments that need to be addressed before this
> enhancement can be resolved (note, I6 development has been extended to March
> 21).

 Could you pls tell me which comments I should address in Comment #15 ?

> Comment #20:
> -Did you open the dependent defect for #1?

  Yes , it's info :
  [Bug 221275] Extra layout need to be show dynamically in Datappol related dialogs


> -I am still seeing the symptoms in #2, despite having the JCA packaged in my
> JRE.  This is also the scenario that we need a test case to test.

  It's ok in my enviroment ,which version of JDK you using ? sometimes I also met this problem when I use jdk1.2.16 although it's contains JCA ,but I never meet this issue while using jdk15 or above .

   I already added a manual test case for this exception scenario in datapool editor related UT testsuite .


> -For #3, we need to make the number of asterisks the same as the length of the
> password field.  When the user selects the field, it displays a solid circle
> for each character, so there is no security concern for making the number of
> asterisks the same as the length of the password field.

 I remember we disscussed this issue during previous design disscussion  . the reason I can not make the mumber of asterisks the same as the length of the password field is that we do not save real password for the datapool on disk (only save hash password and hash variable for encrypted datapool ) . while opening an encrypted datapool editor in eclipse workspace at the first time , I can not decrypt those encrypted variable's values into their original values ,so I can not get these variable/cell origial value's length and I have to show the static length of asterisks in the cell . but it's can change back into their real password 's length after we click encrypted cell and begin to modifed this value in datapool editor becasue at that time user will be propmted to input password and we can get password ,then we can use this inputed password to decrypt variable ...

 Do I explain the reason clearly ? 


> -I am still seeing the symptoms in #4.

I think the reason is the same with above 's JCA issues  ,pls update JDK version .

> -#6 is not done.

 The reason I didn't remove them is that they're used in my code . I see the error after remove them .


> -I am still seeing the symptoms in #8.

 It's caused by design . We only get encrypted datapools info from TPFDeployment for Junit test type . So only those added into aritifacts and 
launch configuration can be got by our code . we can not handle the encrypted datapools used directly in user classes  .

 Maybe you can confirm with Joe about this issue .


Comment 44 Xin Ying Huang CLA 2008-03-13 03:28:44 EDT
Created attachment 92399 [details]
Add a manaul test for JCA scenario
Comment 45 Xin Ying Huang CLA 2008-03-13 03:59:01 EDT
Created attachment 92402 [details]
Updated patch

1)Removed org.eclipse.hyades.test.tools.core.internal.java.codegen 

2)Updated encryption related classes to throw & print exceptions while can not Get JCA correctly .
  Because DatapoolEncryptManager & EncryptionManager are used by both workbench and test runtime side , so we can see this error both this side if met exception .
Comment 46 Xin Ying Huang CLA 2008-03-13 04:04:26 EDT
(In reply to comment #42)
> Please update the number of hours worked on this enhancement.


worked time for design/code/test in person hours: 16 x 5 x 8(6 weeks design, 8 week implementation, 2 weeks testing)

worked time for doc in person hours: 10 x 8

worked time for reviews feedback in person hours : 10 x 8




Comment 47 Xin Ying Huang CLA 2008-03-14 05:27:35 EDT
Created attachment 92550 [details]
Updated a error in last patch
Comment 48 Paul Slauenwhite CLA 2008-03-18 08:50:06 EDT
(In reply to comment #46)
> (In reply to comment #42)
> > Please update the number of hours worked on this enhancement.
> 
> 
> worked time for design/code/test in person hours: 16 x 5 x 8(6 weeks design, 8
> week implementation, 2 weeks testing)
> 
> worked time for doc in person hours: 10 x 8
> 
> worked time for reviews feedback in person hours : 10 x 8
> 

Comment 49 Paul Slauenwhite CLA 2008-03-18 09:04:43 EDT
(In reply to comment #43)
> (In reply to comment #40)
> > (In reply to comment #34)
> > Reviewed with comments:
> > Comment #14:
> > -There are still outstanding comments that need to be addressed before this
> > enhancement can be resolved (note, I6 development has been extended to March
> > 21).
> 
> Could you pls tell me which comments I should address in Comment #14 ?

I did not check each comment, but the first 3 or four were still outstanding.  Can you please run through the entire list and confirm that they are all addressed?

> > Comment #15:
> > -There are still outstanding comments that need to be addressed before this
> > enhancement can be resolved (note, I6 development has been extended to March
> > 21).
> 
>  Could you pls tell me which comments I should address in Comment #15 ?

I did not check each comment, but there are several still outstanding.  Can you please run through the entire list and confirm that they are all addressed?  If you cannot address them before Thursday (DECUT for I6), please open defects to address them in I7.

> > Comment #20:
> > -Did you open the dependent defect for #1?
> 
>   Yes , it's info :
>   [Bug 221275] Extra layout need to be show dynamically in Datappol related
> dialogs

Thanks.  Sorry, I missed it.

> > -I am still seeing the symptoms in #2, despite having the JCA packaged in my
> > JRE.  This is also the scenario that we need a test case to test.
> 
>   It's ok in my environment ,which version of JDK you using ? sometimes I also
> met this problem when I use jdk1.2.16 although it's contains JCA ,but I never
> meet this issue while using jdk15 or above .
> 
>    I already added a manual test case for this exception scenario in datapool
> editor related UT testsuite .

I will open a defect if I can still reproduce these symptoms with the final patch. 

> > -For #3, we need to make the number of asterisks the same as the length of the
> > password field.  When the user selects the field, it displays a solid circle
> > for each character, so there is no security concern for making the number of
> > asterisks the same as the length of the password field.
> 
>  I remember we discussed this issue during previous design discussion  . the
> reason I can not make the mumber of asterisks the same as the length of the
> password field is that we do not save real password for the datapool on disk
> (only save hash password and hash variable for encrypted datapool ) . while
> opening an encrypted datapool editor in eclipse workspace at the first time , I
> can not decrypt those encrypted variable's values into their original values
> ,so I can not get these variable/cell origial value's length and I have to show
> the static length of asterisks in the cell . but it's can change back into
> their real password 's length after we click encrypted cell and begin to
> modifed this value in datapool editor becasue at that time user will be
> propmted to input password and we can get password ,then we can use this
> inputed password to decrypt variable ...
> 
>  Do I explain the reason clearly ? 

Yes, very clear.  Given the reasons you noted, lets leave it as working as designed.

> > -I am still seeing the symptoms in #4.
> 
> I think the reason is the same with above 's JCA issues  ,pls update JDK
> version .

I do not see the relationship between the two issues.  #4 is about focus/editing the cell, which should be independent to the JCA.  I would assume it is caused by the new password field for the cell, instead of
a text field.  Can you verify?  We may need to provide our own mouse listener to give focus to the password field to emulate the old behavior.

> > -#6 is not done.
> 
>  The reason I didn't remove them is that they're used in my code . I see the
> error after remove them .

Yes, you will need to make other changes after they are removed.  For example, you can remove DatapoolExportWizard_unencrypted from org.eclipse.hyades.test.ui/src/org/eclipse/hyades/test/ui/internal/resources/messages.properties and org.eclipse.hyades.test.ui.internal.resources.UiPluginResourceBundle.java and display the original message.

> > -I am still seeing the symptoms in #8.
> 
>  It's caused by design . We only get encrypted datapools info from
> TPFDeployment for Junit test type . So only those added into aritifacts and 
> launch configuration can be got by our code . we can not handle the encrypted
> datapools used directly in user classes  .
> 
>  Maybe you can confirm with Joe about this issue .

You are correct.  If there is no launch configuration for the test suite that uses an existing deployment, the datapool used by the test suite will not be deployed.

Comment 50 Xin Ying Huang CLA 2008-03-19 06:26:17 EDT
Created attachment 92881 [details]
Updated a new patch

Paul :
  Thanks for your good suggestion and I found I lost most of my modifications for Comment #14 & Comment #15 in my last patch , so I picked up them in this patch ,pls review it .

 I didn't use your code to replace the methods : hexStringToByteArray() & byteArrayToHexString() in org.eclipse.hyades.models.common.util.EncryptionManager , the reason is that I found your code could not support encrypting & decrypting Chinese words well ,so I choose using my code ,thanks very much !
Comment 51 Xin Ying Huang CLA 2008-03-19 06:36:20 EDT
Created attachment 92885 [details]
TVT & Enablement test cases

Add some test cases for TVT and enablement test
Comment 52 Paul Slauenwhite CLA 2008-03-19 07:20:45 EDT
The following attachments have been checked into CVS (HEAD):

Updated UT test cases  
Updated TVT and Enablement tests for this feature
Add a manaul test for JCA scenario
Comment 53 Paul Slauenwhite CLA 2008-03-20 07:08:52 EDT
(In reply to comment #52)
> The following attachments have been checked into CVS (HEAD):
> 
> Updated UT test cases  
> Updated TVT and Enablement tests for this feature
> Add a manaul test for JCA scenario
> 

Replaced 'Updated TVT and Enablement tests for this feature' with 'TVT & Enablement test cases' in CVS (HEAD).
Comment 54 Paul Slauenwhite CLA 2008-03-20 10:18:10 EDT
(In reply to comment #50)
> Created an attachment (id=92881) [details]
> Updated a new patch
> 
> Paul :
>   Thanks for your good suggestion and I found I lost most of my modifications
> for Comment #14 & Comment #15 in my last patch , so I picked up them in this
> patch ,pls review it .
> 
>  I didn't use your code to replace the methods : hexStringToByteArray() &
> byteArrayToHexString() in
> org.eclipse.hyades.models.common.util.EncryptionManager , the reason is that I
> found your code could not support encrypting & decrypting Chinese words well
> ,so I choose using my code ,thanks very much !
> 

Thanks.  I am reviewing now.

Not a problem to use the existing code for hex/byte array conversion.
Comment 55 Paul Slauenwhite CLA 2008-03-20 11:05:24 EDT
The following attachment has been checked into CVS (HEAD):

Documents update for this feature  
Comment 56 Paul Slauenwhite CLA 2008-03-20 11:37:39 EDT
Joe, we need to get this patch integrated today (last day of I6 development and API freeze) so I have removed you as a mandatory reviewer.  That said, if you want to test a build containing this enhancement, please add any comments to this enhancement.
Comment 57 Paul Slauenwhite CLA 2008-03-20 13:50:48 EDT
The final patch has been reviewed, refactored to include all comments in comment #14 and comment #15, and checked in to CVS.
Comment 58 Tony Wang CLA 2008-04-15 21:45:49 EDT
I use Junit test tutorial 
(http://help.eclipse.org/help33/index.jsp?topic=/org.eclipse.hyades.test.doc.user/samples/saccessdp.htm) 
to verify this enhancement. The junit test is run with a datapool containing test data, and the datapool is connected to the test by artifact.

This junit test is passed when the datapool has no encrypted data, but it has some error to get the data when some variable is encrypted(happened in String and Double type)

Another problem is the 'asked for password' dialog still pop up when running the test after i encrypt--then decrypt all variables in datapool(no encrypted data when running), this problem can be solved by restart eclise -clean, is that what we want for this enhancement?
Comment 59 Xin Ying Huang CLA 2008-04-16 10:38:54 EDT
(In reply to comment #58)
> I use Junit test tutorial 
> (http://help.eclipse.org/help33/index.jsp?topic=/org.eclipse.hyades.test.doc.user/samples/saccessdp.htm) 
> to verify this enhancement. The junit test is run with a datapool containing
> test data, and the datapool is connected to the test by artifact.
> This junit test is passed when the datapool has no encrypted data, but it has
> some error to get the data when some variable is encrypted(happened in String
> and Double type)
> Another problem is the 'asked for password' dialog still pop up when running
> the test after i encrypt--then decrypt all variables in datapool(no encrypted
> data when running), this problem can be solved by restart eclise -clean, is
> that what we want for this enhancement?

Could you pls send me the snapshots or error msg for errors ? thanks !
Comment 60 Xin Ying Huang CLA 2008-04-16 10:39:36 EDT
(In reply to comment #58)
> I use Junit test tutorial 
> (http://help.eclipse.org/help33/index.jsp?topic=/org.eclipse.hyades.test.doc.user/samples/saccessdp.htm) 
> to verify this enhancement. The junit test is run with a datapool containing
> test data, and the datapool is connected to the test by artifact.
> This junit test is passed when the datapool has no encrypted data, but it has
> some error to get the data when some variable is encrypted(happened in String
> and Double type)
> Another problem is the 'asked for password' dialog still pop up when running
> the test after i encrypt--then decrypt all variables in datapool(no encrypted
> data when running), this problem can be solved by restart eclise -clean, is
> that what we want for this enhancement?

Could you pls send me the snapshots or error msg for errors ? thanks !
Comment 61 Paul Slauenwhite CLA 2008-04-16 11:03:53 EDT
(In reply to comment #60)
> (In reply to comment #58)
> > I use Junit test tutorial 
> > (http://help.eclipse.org/help33/index.jsp?topic=/org.eclipse.hyades.test.doc.user/samples/saccessdp.htm) 
> > to verify this enhancement. The junit test is run with a datapool containing
> > test data, and the datapool is connected to the test by artifact.
> > This junit test is passed when the datapool has no encrypted data, but it has
> > some error to get the data when some variable is encrypted(happened in String
> > and Double type)
> > Another problem is the 'asked for password' dialog still pop up when running
> > the test after i encrypt--then decrypt all variables in datapool(no encrypted
> > data when running), this problem can be solved by restart eclise -clean, is
> > that what we want for this enhancement?
> 
> Could you pls send me the snapshots or error msg for errors ? thanks !
> 

Please continue under defect #224843.
Comment 62 Paul Slauenwhite CLA 2008-04-16 11:04:41 EDT
Mistakenly closed this defect.
Comment 63 Paul Slauenwhite CLA 2008-04-16 11:05:09 EDT
Re-resolving as fixed.
Comment 64 Tony Wang CLA 2008-04-16 12:38:01 EDT
I verified this defect using below build in my local environment:
 --tptp.runtime.allInOne.win32.win32.x86-TPTP-4.5.0M6.zip
 --agntctrl.win_ia32-TPTP-4.5.0M6.zip(if running with AC)
Reference:http://help.eclipse.org/help33/index.jsp?topic=/org.eclipse.hyades.test.doc.user/samples/saccessdp.htm

There is no error when running the junit test with a normal datapool(no encrypted data)

when encrypt a "string" variable, the stack trace for the error case will be:


 junit.framework.AssertionFailedError
	at junit.framework.Assert.fail(Assert.java:47)
	at junit.framework.Assert.assertTrue(Assert.java:20)
	at junit.framework.Assert.assertNotNull(Assert.java:217)
	at junit.framework.Assert.assertNotNull(Assert.java:210)
	at shoppingCartTest_src.testShoppingCartConstructor(shoppingCartTest_src.java:90)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at junit.framework.TestCase.runTest(TestCase.java:164)
	at junit.framework.TestCase.runBare(TestCase.java:130)
	at junit.framework.TestResult$1.protect(TestResult.java:106)
	at junit.framework.TestResult.runProtected(TestResult.java:124)
	at junit.framework.TestResult.run(TestResult.java:109)
	at junit.framework.TestCase.run(TestCase.java:120)
	at org.eclipse.hyades.test.common.junit.HyadesTestCase.run(HyadesTestCase.java:172)
	at junit.framework.TestSuite.runTest(TestSuite.java:230)
	at org.eclipse.hyades.test.common.junit.HyadesTestSuite.runTest(HyadesTestSuite.java:457)
	at junit.framework.TestSuite.run(TestSuite.java:225)
	at org.eclipse.hyades.test.common.junit.HyadesTestSuite.doRun(HyadesTestSuite.java:425)
	at org.eclipse.hyades.test.common.junit.HyadesTestSuite.run(HyadesTestSuite.java:338)
	at junit.extensions.TestDecorator.basicRun(TestDecorator.java:24)
	at junit.extensions.TestDecorator.run(TestDecorator.java:30)
	at junit.extensions.RepeatedTest.run(RepeatedTest.java:26)
	at junit.framework.TestSuite.runTest(TestSuite.java:230)
	at org.eclipse.hyades.test.common.junit.HyadesTestSuite.runTest(HyadesTestSuite.java:457)
	at junit.framework.TestSuite.run(TestSuite.java:225)
	at org.eclipse.hyades.test.common.junit.HyadesTestSuite.doRun(HyadesTestSuite.java:425)
	at org.eclipse.hyades.test.common.junit.HyadesTestSuite.run(HyadesTestSuite.java:338)
	at org.eclipse.hyades.test.common.junit.HyadesTestRunner.run(HyadesTestRunner.java:504)
	at org.eclipse.hyades.test.java.runner.HyadesJUnitRunner.main(HyadesJUnitRunner.java:117)

Comment 65 Tony Wang CLA 2008-04-16 12:41:26 EDT
Using the same environment in Comment #64,
When encrypting a Double type variable the stack trace of error result would be:

java.lang.NumberFormatException: For input string: "0cb2d7dd"
	at sun.misc.FloatingDecimal.readJavaFormatString(Unknown Source)
	at java.lang.Double.parseDouble(Unknown Source)
	at org.eclipse.hyades.models.common.datapool.impl.DPLCellImpl.getDoubleValue(DPLCellImpl.java:435)
	at shoppingCartTest_src.testShoppingCartConstructor(shoppingCartTest_src.java:86)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at junit.framework.TestCase.runTest(TestCase.java:164)
	at junit.framework.TestCase.runBare(TestCase.java:130)
	at junit.framework.TestResult$1.protect(TestResult.java:106)
	at junit.framework.TestResult.runProtected(TestResult.java:124)
	at junit.framework.TestResult.run(TestResult.java:109)
	at junit.framework.TestCase.run(TestCase.java:120)
	at org.eclipse.hyades.test.common.junit.HyadesTestCase.run(HyadesTestCase.java:172)
	at junit.framework.TestSuite.runTest(TestSuite.java:230)
	at org.eclipse.hyades.test.common.junit.HyadesTestSuite.runTest(HyadesTestSuite.java:457)
	at junit.framework.TestSuite.run(TestSuite.java:225)
	at org.eclipse.hyades.test.common.junit.HyadesTestSuite.doRun(HyadesTestSuite.java:425)
	at org.eclipse.hyades.test.common.junit.HyadesTestSuite.run(HyadesTestSuite.java:338)
	at junit.extensions.TestDecorator.basicRun(TestDecorator.java:24)
	at junit.extensions.TestDecorator.run(TestDecorator.java:30)
	at junit.extensions.RepeatedTest.run(RepeatedTest.java:26)
	at junit.framework.TestSuite.runTest(TestSuite.java:230)
	at org.eclipse.hyades.test.common.junit.HyadesTestSuite.runTest(HyadesTestSuite.java:457)
	at junit.framework.TestSuite.run(TestSuite.java:225)
	at org.eclipse.hyades.test.common.junit.HyadesTestSuite.doRun(HyadesTestSuite.java:425)
	at org.eclipse.hyades.test.common.junit.HyadesTestSuite.run(HyadesTestSuite.java:338)
	at org.eclipse.hyades.test.common.junit.HyadesTestRunner.run(HyadesTestRunner.java:504)
	at org.eclipse.hyades.test.java.runner.HyadesJUnitRunner.main(HyadesJUnitRunner.java:117)

Comment #64 and Comment #65 are both verified by IAC/AC with IBM50/Sun jre1.5.0_14
Comment 66 Xin Ying Huang CLA 2008-04-17 05:04:39 EDT
(In reply to comment #65)

For the errors in commments #65 and # 64 (can not run junit test using String and Double encrypted data ) , they're caused by an minor typing error in the org.eclispe.hyades.test.tools.core plugin , in order to fix these errors ,pls do below modification :

  1, open the class : org.eclipse.hyades.test.common.testservices.resources.DatapoolPasswordProvider  , update below code  :

 result = ServiceInvoker.invokeService(getProviderName(),
					"method=getDatapoolList,args:testId={0}".concat(testId));


 into :

 result = ServiceInvoker.invokeService(getProviderName(),
					"method=getDatapoolList,args:testId=".concat(testId));

(the reason for errrors is that there are a useless {0} in code )



Paul :

  I already verified the juint test running after updated above code ,it's works well using encrypted datapool ,but I can not check out latest tptp cvs code into my local and can not create a new patch ,so cloud you pls help do above modifications  in tptp cvs directly ? thanks very much !
 
Comment 67 Xin Ying Huang CLA 2008-04-17 05:18:20 EDT
(In reply to comment #58)
> I use Junit test tutorial 
> (http://help.eclipse.org/help33/index.jsp?topic=/org.eclipse.hyades.test.doc.user/samples/saccessdp.htm) 
> 
> Another problem is the 'asked for password' dialog still pop up when running
> the test after i encrypt--then decrypt all variables in datapool(no encrypted
> data when running), this problem can be solved by restart eclise -clean, is
> that what we want for this enhancement?

About this problem , I have checked the workbench side's code , In order to get encrypted datapool list which used in current test , I have done the below steps :

1) added a extension point of launchconfigDatapoolHandler in the plugin org.eclipse.hyades.test.core and implemented this extension point as org.eclipse.hyades.test.core.internal.launch.datapool.extensions.JUnitLaunchconfigDatapoolHandler class , in this class I will get encrypted datapool name list from TPFDeployment & TPFTest 

2) Invoke this Junit extension in the  class of org.eclipse.hyades.test.core.launch.delegates.AbstractLaunchConfigurationDelegate2 :

  maybe lines :  197 - 213 

I guess this problem only probably caused in above 2 places : TPFDeployment & TPFTest which used in the JUnitLaunchconfigDatapoolHandler  are not updated after decrypted datapool   ; or code of #2 wroted in wrong place due to JUnitLaunchconfigDatapoolHandler are not updated in workbench side at that time  ...


Paul :

  Although I probably know where is wrong but I'm not too familiar with test.core plugin code and I do not know how to let  TPFDeployment & TPFTest  updated automatically after user did some changes in datapool editor UI , so can you help me forward my problem to the right developer ?  thanks very much !


Comment 68 David Skeen CLA 2008-05-12 14:25:48 EDT
Closed
Comment 69 Joel Cayne CLA 2008-10-23 14:32:58 EDT
Comment on attachment 92881 [details]
Updated a new patch

adding iplog+ per Ganymede IP log