tree 09d7e621152760c9d3cc6c94e958e1c8e4f1e207
parent 30eb8168d165cfd28f1122382b053f8fdf5e4b1f
author Nick Boldt <nboldt@redhat.com> 1625582833 -0400
committer Nick Boldt <nboldt@redhat.com> 1625582864 -0400

Revert "Bug 549445 - Data source explorer showing column names duplicated"

This reverts commit 49c4b29a100811abb5ecf773d9dc08e4d20ec6de.

Reason for revert: compilation fails after this change - https://ci.eclipse.org/datatools/job/org.eclipse.datatools_master/124/console 

[ERROR] Failed to execute goal org.eclipse.tycho:tycho-compiler-plugin:2.2.0:compile (default-compile) on project org.eclipse.datatools.enablement.oda.xml.tests: Compilation failure: Compilation failure: 
[ERROR] /home/jenkins/agent/workspace/org.eclipse.datatools_master/tests/org.eclipse.datatools.enablement.oda.xml.tests/src/org/eclipse/datatools/enablement/oda/xml/util/ui/SchemaPopulationUtilTest.java:[29] 
[ERROR] 	new sun.security.action.GetPropertyAction("line.separator"));
[ERROR] 	    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[ERROR] sun.security.action.GetPropertyAction cannot be resolved to a type
[ERROR] /home/jenkins/agent/workspace/org.eclipse.datatools_master/tests/org.eclipse.datatools.enablement.oda.xml.tests/src/org/eclipse/datatools/enablement/oda/xml/util/SaxParserTest.java:[40] 
[ERROR] 	static String lineSeparator = (String) java.security.AccessController.doPrivileged( new sun.security.action.GetPropertyAction( "line.separator" ) );
[ERROR] 	                                                                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[ERROR] sun.security.action.GetPropertyAction cannot be resolved to a type
[ERROR] 2 problems (2 errors)
[ERROR] -> [Help 1]

Change-Id: Idadd68e3be5a24674c5a21ee90bf360f44be8dea
