You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by al...@apache.org on 2007/01/03 22:03:43 UTC

svn commit: r492302 - /incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/analysis_engine/impl/ResultSpecification_impl.java

Author: alally
Date: Wed Jan  3 13:03:42 2007
New Revision: 492302

URL: http://svn.apache.org/viewvc?view=rev&rev=492302
Log:
ResultSpecification_impl marked final due to its implementation
of clone() being unsafe for subclassing.
UIMA-149: http://issues.apache.org/jira/browse/UIMA-149

Modified:
    incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/analysis_engine/impl/ResultSpecification_impl.java

Modified: incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/analysis_engine/impl/ResultSpecification_impl.java
URL: http://svn.apache.org/viewvc/incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/analysis_engine/impl/ResultSpecification_impl.java?view=diff&rev=492302&r1=492301&r2=492302
==============================================================================
--- incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/analysis_engine/impl/ResultSpecification_impl.java (original)
+++ incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/analysis_engine/impl/ResultSpecification_impl.java Wed Jan  3 13:03:42 2007
@@ -42,7 +42,8 @@
  * 
  * 
  */
-public class ResultSpecification_impl extends MetaDataObject_impl implements ResultSpecification {
+public final class ResultSpecification_impl extends MetaDataObject_impl implements
+        ResultSpecification {
 
   private static final long serialVersionUID = 8516517600467270594L;
 
@@ -565,14 +566,15 @@
    */
   public Object clone() {
     // create new result specification
-    // NOTE: cannot use super.clone here, since we do not want to execute
-    // the MetaDataObject_impl logic. TODO: rethink whether this should be
-    // a subclass of MetaDataOBject_impl.
+    // NOTE: we don't use super.clone here, since for performance reasons
+    // we want to do a faster clone that what the general-purpose logic in
+    // MetaDataObject_impl does. This class is marked final so that
+    // this can't cause a problem if ResultSpecification_impl is subclassed.
     ResultSpecification_impl newResultSpec = new ResultSpecification_impl();
 
     // clone HashMaps
-    newResultSpec.mTypesAndFeatures = new HashMap(this.mTypesAndFeatures);
-    newResultSpec.mDefaultLanguage = new HashSet(this.mDefaultLanguage);
+    // newResultSpec.mTypesAndFeatures = new HashMap(this.mTypesAndFeatures);
+    // newResultSpec.mDefaultLanguage = new HashSet(this.mDefaultLanguage);
 
     return newResultSpec;
   }