Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[mdt-ocl.dev] Re: OCL Encoding problem

Hi Ed

I can reproduce the problem with ibm_sdk50 but not with ibm_sdk60, so hopefully the train crash was of limited impact.

The five offending files are now UTF-8 in CVS.

Sorry for the problems.

    Ed

Ed Merks wrote:
Ed,

It would have to be a JRE difference because the JDT has its own compiler.  Yes, deleting the project level UTF-8 default preference helps.  So it does seem these five files need to opened with ISO encoding, saved with UTF-8 encoding, and then committed back in that way.

Note that I see other issues caused by the addition of EObject.eInvoke, e.g., in org.eclipse.qvt.declaration.ecore; the EObject should not be implemented directly...

Regards,
Ed


Ed Willink wrote:
Hi Ed

Thanks. An IBM/Sun compiler difference looks to be the strongest probability. I'll have to learn how to download an IBM JDK to investigate.

Try deleting the /org.eclipse.ocl/.settings/org.eclipse.core.resources.prefs in all complaining projects. If the problem just vanishes, we'll just delete those in CVS immediately and then investigate further.

Trying a Sun JVM would also be helpful.

    Ed

Ed Merks wrote:
Ed,

Here's how it looks:

I'm using eclipse-SDK-I20091201-1100-win32.zip on XP with

java version "1.5.0"
Java(TM) 2 Runtime Environment, Standard Edition (build pwi32dev-20060919 (SR3))
IBM J9 VM (build 2.3, J2RE 1.5.0 IBM J9 2.3 Windows XP x86-32 j9vmwi3223-20060919 (JIT enabled)
J9VM - 20060915_08260_lHdSMR
JIT  - 20060908_1811_r8
GC   - 20060906_AA)
JCL  - 20060918

I get the same problem with a pre-M3 version of Eclipse so I don't think it's a recent Eclipse change.  I don't get the problem with the R1_3_maintenance branch. But with HEAD there are five files with this problem, all with a recent delta.

No, the change to Ecore won't be backed out because without that change, hundreds of useless operation literals are produced in EcorePackage.

Regards,
Ed


Ed Willink wrote:
Hi Ed

You'll have to provide much more detail. It's firmly a WORKSFORME.

I've loaded fresh from CVS on Eclipse 3.6M3 with default workspace preferences on Vista Home Premium. I get no edit or build problems. I get no UML-binding test failure. I get one Ecore-binding test failure due to the change in EModelElement inheritance from EObject. Will this be backed out?

What IDE are you using?
What version?
What Operating System?
What hardware?

....

    Ed

Ed Merks wrote:
Ed,

Comments below.

Ed Willink wrote:
Hi Ed

The encoding problem has been around since at least 16-Oct-2008 when Christian committed some of Adolfo's code with the contributor comment:

 *   Adolfo S�nchez-Barbudo Herrera - Bug 233673

At that time all OCL plugins had unspecified encoding, so the magic character changed depending who checked out/in on what system.

The problem has become more apparent since the agreement in Bug 291310 to impose UTF-8 on JUnit plugins so that tests of Unicoide strings would run on both Linux and Windows. Unfortunately a UTF-8 encoding has been applied for the non-test plugins too.

For me on Windows, with Sun compilers, setting UTF-8 on all plugins is just an aesthetic inelegance. I see a rubbish character in a comment.
I'm using the IDE though.

Clearly this is causing bigger problems elsewhere. Can you elaborate on what tools are failing?
The JDT compiler isn't compiling the file.

Probably we should back out the UTF-8 on the non-test plugins.
Or use the latest version of IDE to try to build things an fixing any related problems by opening as ISO changing the encoding once it's open and saving at UTF.

I have just run all the Ecore-binding tests on Vista with 3.6M3 platform, EMF fresh from CVS HEAD, MDT/OCL fresh from CVS HEAD, no build problems. 1 test failure on a missing "eContents()" method. Maybe the visible Ecore model has changed. Certainly nothing dramatic like help why is everything broken? The UML2 plugins are still checking out very slowly.
On thing that's changed in the Ecore model itself is the explicit use of EObject's EClass in EModel's EClass's eSuperTypes.   That's only visible via Ecore reflection not via any generated APIs.

My problem isn't everything leading up to OCL, it's everything downstream from OCL being broken.  Query, Validation, QVT, GMF.  I.e., the better part of the modeling stack is in shambles unless various people start to take action and it's not clear to me whether these clients have been informed or if they will just suddenly realize one day that it's all broken...

    Ed

Ed Merks wrote:
Ed,

Comments below.

Ed Willink wrote:
Hi Ed

Fixing the builds is my fun for this weekend.
Builds are endlessly entertaining. :-(

Something in UML2 broke 19 OCL tests three weeks ago. Bug 294848.
Maybe that was an EMF-caused problem that's been fixed now....
https://bugs.eclipse.org/bugs/show_bug.cgi?id=296194

A first glance through the recent build failure doesn't show anything that shouts where the fault is. There are some suspicious diagnostics concerning EMF. Maybe the models need regenerating to use the latest EMF.
Not sure.

What tool do you use to display the file formats/find that they cause problems?
I simply extracted the project into my workspace and it fails to build, complaining the file isn't readable.  Opening it up shows an error about the encoding being invalid and let's you change it. When I set it to ISO-Latin, the file them displays properly.  So it seems to be encoded as ISO-Latin, while the project level preference is for all files to be UTF-8 encoded.

   Ed

Ed Merks wrote:
Ed,

The preferences for org.eclipse.ocl sets the encoding for the project to UTF-8, but apparently all the files in that project are not encoded as UTF-8.  TypeUtil being just one example of a file encoded as ISO Latin and not being readable as UTF-8.  Is there something you're doing when editing and committing changes that producing the wrong encoding? The changes in OCL seem to have left the modeling technology stack in shambles (QVT, GMF, Query, and Validation are all broken it seems) and that has me very concerned.  What are all the downstream projects doing to address the impact of these changes?  How will it be possible to create milestone builds for the whole stack in the coming weeks?
The cross project communication to date has been exceedingly poor.

Regards,
Ed


Ed Willink wrote:
Hi Ed

This has been discussed in Bug 291310. The offending characters should only be in JUnit tests.

(Ah. I just committed a contribution from  Patrick Könemann <mailto:pk@xxxxxxxxxx>. In the past Adolfo Sanchez has had an accent on his a.
These are all in comments, where .).

The code usage was where Christian tested that a quoted string could be quoted with other variants of single quote such as Hebrew. Since this was never in the OCL spec, and one of my recent OMG resolutions (currently voted 1 for, 3 abstaining) makes such quotes illegal, it is not clear that we needed UTF-8 in code at all, except that more recently we've been needing to test Unicode identifiers.

We therefore set the plugin preferences to UTF-8 which ensured that both our Windows and Linux users were able to get 100% JUnit passes. I think Alex is still working on the build aspects. We also have a JUnit test that checks that UTF-8 is in force.

I hope this allays your concerns.

    Regards

       Ed


Ed Merks wrote:
Ed,

It doesn't seem like a good idea to check in files with ISO-Latin characters as you've recently done with a number of OCL files.  Sticking to ASCII seems better because then they can be opened as ASCII, ISO-Latin, or UTF-8.  If you must use some other encoding, it's probably important that the encoding you're using is captured  in CVS itself sot hat it is applied when the files are checked out by others.
Regards,
Ed


------------------------------------------------------------------------


No virus found in this incoming message.
Checked by AVG - www.avg.com Version: 9.0.709 / Virus Database: 270.14.93/2544 - Release Date: 12/04/09 07:32:00

 


Back to the top