Umple reference comment is not working correctly
When we define a method inside a Umple file, in the generated code we have a reference to Umple file. Looks like, someone has broken it.
Check out the following example

//file: test.ump

```
use test1.ump;
class A{
    void test(){
        //test
    }
}
```

//file: test1.ump

```
use test2.ump;
class A{
    void test1(){
        //test1
    }
}
```

//file: test2.ump

```
class A{
    void test2(){
        //test 2
    }
}
```

**Generated code:**

```
  // line 4 "test2.ump"
  public void test2(){
    //test 2
  }

  // line 4 "test2.ump"
  public void test1(){
    //test1
  }

  // line 49 "test2.ump"
  public void test(){
    //test
  }
```

diff --git a/UmpleToJava/src/cruise/umple/compiler/java/JavaClassGenerator.java b/UmpleToJava/src/cruise/umple/compiler/java/JavaClassGenerator.java
index faad32de8..f7f078151 100755
--- a/UmpleToJava/src/cruise/umple/compiler/java/JavaClassGenerator.java
+++ b/UmpleToJava/src/cruise/umple/compiler/java/JavaClassGenerator.java
@@ -2739,6 +2739,7 @@ public class JavaClassGenerator implements ILang
     stringBuffer.append(TEXT_4);
      if (uClass.numberOfComments() > 0) { append(stringBuffer, "\n{0}", Comment.format("Javadoc",uClass.getComments())); } 
      for (Position p : uClass.getPositions()) { 
+     uClass.setSourceFilename( p.getFilename() ); 
     stringBuffer.append(TEXT_5);
     stringBuffer.append( p.getLineNumber() );
     stringBuffer.append(TEXT_6);
@@ -12799,6 +12800,7 @@ if (p != null) {
         
         if (p != null) {
 //        use annotations instead
+        uClass.setSourceFilename( p.getFilename() );
         positionHeader = "  // line " + p.getLineNumber() + " \"" + uClass.getRelativePath("Java") + "\"\n";
 //        positionHeader = "\n  @umplesourcefile(line={"+p.getLineNumber()+"},file={\""+p.getFilename().replaceAll("\\\\","/").replaceAll("(.*)/","")+ "\"},javaline={"+(javaline+4)+"},length={"+(aMethod.getIsImplemented()?2: aMethod.getMethodBody().getExtraCode().split("\\n").length+2)+"})";          
         }
diff --git a/UmpleToJava/src/cruise/umple/compiler/java/JavaInterfaceGenerator.java b/UmpleToJava/src/cruise/umple/compiler/java/JavaInterfaceGenerator.java
old mode 100644
new mode 100755
diff --git a/UmpleToJava/src/cruise/umple/compiler/java/JavaSpecGenerator.java b/UmpleToJava/src/cruise/umple/compiler/java/JavaSpecGenerator.java
old mode 100644
new mode 100755
diff --git a/UmpleToJava/src/cruise/umple/ignore/Ignore.java b/UmpleToJava/src/cruise/umple/ignore/Ignore.java
old mode 100644
new mode 100755
diff --git a/UmpleToJava/templates/JavaClassGenerator.jumpjet b/UmpleToJava/templates/JavaClassGenerator.jumpjet
index cd83e1df8..cdb640cb7 100755
--- a/UmpleToJava/templates/JavaClassGenerator.jumpjet
+++ b/UmpleToJava/templates/JavaClassGenerator.jumpjet
@@ -34,6 +34,7 @@
 
 <% if (uClass.numberOfComments() > 0) { append(stringBuffer, "\n{0}", Comment.format("Javadoc",uClass.getComments())); } %>
 <% for (Position p : uClass.getPositions()) { %>
+<% uClass.setSourceFilename( p.getFilename() ); %>
 // line <%= p.getLineNumber() %> "<%= uClass.getRelativePath("Java") %>"
 <% } %>
 public <% if (uClass.getIsAbstract()) { append(stringBuffer, "{0} ", "abstract"); } %>class <%=uClass.getName()%><%= gen.translate("isA",uClass) %><%
diff --git a/UmpleToJava/templates/class_MethodDeclaration.jet b/UmpleToJava/templates/class_MethodDeclaration.jet
index 0c3a48e3f..6fe49b0b1 100755
--- a/UmpleToJava/templates/class_MethodDeclaration.jet
+++ b/UmpleToJava/templates/class_MethodDeclaration.jet
@@ -15,6 +15,7 @@
         
         if (p != null) {
 //        use annotations instead
+        uClass.setSourceFilename( p.getFilename() );
         positionHeader = "  // line " + p.getLineNumber() + " \"" + uClass.getRelativePath("Java") + "\"\n";
 //        positionHeader = "\n  @umplesourcefile(line={"+p.getLineNumber()+"},file={\""+p.getFilename().replaceAll("\\\\","/").replaceAll("(.*)/","")+ "\"},javaline={"+(javaline+4)+"},length={"+(aMethod.getIsImplemented()?2: aMethod.getMethodBody().getExtraCode().split("\\n").length+2)+"})";          
         }
diff --git a/cruise.umple/src-gen-jet/cruise/umple/compiler/java/JavaClassGenerator.java b/cruise.umple/src-gen-jet/cruise/umple/compiler/java/JavaClassGenerator.java
index 797530c3c..5e19821b4 100644
--- a/cruise.umple/src-gen-jet/cruise/umple/compiler/java/JavaClassGenerator.java
+++ b/cruise.umple/src-gen-jet/cruise/umple/compiler/java/JavaClassGenerator.java
@@ -2739,6 +2739,7 @@ public class JavaClassGenerator implements ILang
     stringBuffer.append(TEXT_4);
      if (uClass.numberOfComments() > 0) { append(stringBuffer, "\n{0}", Comment.format("Javadoc",uClass.getComments())); } 
      for (Position p : uClass.getPositions()) { 
+     uClass.setSourceFilename( p.getFilename() ); 
     stringBuffer.append(TEXT_5);
     stringBuffer.append( p.getLineNumber() );
     stringBuffer.append(TEXT_6);
@@ -12799,6 +12800,7 @@ if (p != null) {
         
         if (p != null) {
 //        use annotations instead
+        uClass.setSourceFilename( p.getFilename() );
         positionHeader = "  // line " + p.getLineNumber() + " \"" + uClass.getRelativePath("Java") + "\"\n";
 //        positionHeader = "\n  @umplesourcefile(line={"+p.getLineNumber()+"},file={\""+p.getFilename().replaceAll("\\\\","/").replaceAll("(.*)/","")+ "\"},javaline={"+(javaline+4)+"},length={"+(aMethod.getIsImplemented()?2: aMethod.getMethodBody().getExtraCode().split("\\n").length+2)+"})";          
         }
['UmpleToJava/templates/JavaClassGenerator.jumpjet', 'cruise.umple/src-gen-jet/cruise/umple/compiler/java/JavaClassGenerator.java', 'UmpleToJava/src/cruise/umple/compiler/java/JavaClassGenerator.java', 'UmpleToJava/templates/class_MethodDeclaration.jet']