You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@streams.apache.org by sb...@apache.org on 2015/10/23 23:56:12 UTC

[4/5] incubator-streams git commit: fixes singleton problem when instantiating multiple instances in same jvm

fixes singleton problem when instantiating multiple instances in same jvm


Project: http://git-wip-us.apache.org/repos/asf/incubator-streams/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-streams/commit/5940a4d8
Tree: http://git-wip-us.apache.org/repos/asf/incubator-streams/tree/5940a4d8
Diff: http://git-wip-us.apache.org/repos/asf/incubator-streams/diff/5940a4d8

Branch: refs/heads/master
Commit: 5940a4d89c9975cae18d3eb8071c7900e91c0052
Parents: ef4d1e9
Author: Steve Blackmon (@steveblackmon) <sb...@apache.org>
Authored: Wed Sep 23 15:18:19 2015 -0500
Committer: Steve Blackmon (@steveblackmon) <sb...@apache.org>
Committed: Wed Sep 23 15:18:19 2015 -0500

----------------------------------------------------------------------
 .../org/apache/streams/converter/LineReadWriteUtil.java  | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-streams/blob/5940a4d8/streams-components/streams-converters/src/main/java/org/apache/streams/converter/LineReadWriteUtil.java
----------------------------------------------------------------------
diff --git a/streams-components/streams-converters/src/main/java/org/apache/streams/converter/LineReadWriteUtil.java b/streams-components/streams-converters/src/main/java/org/apache/streams/converter/LineReadWriteUtil.java
index 13b0ebf..d418b52 100644
--- a/streams-components/streams-converters/src/main/java/org/apache/streams/converter/LineReadWriteUtil.java
+++ b/streams-components/streams-converters/src/main/java/org/apache/streams/converter/LineReadWriteUtil.java
@@ -83,18 +83,24 @@ public class LineReadWriteUtil {
     public static LineReadWriteUtil getInstance(List<String> fields){
         if( INSTANCE == null )
             INSTANCE = new LineReadWriteUtil(fields);
+        else if( !INSTANCE.fields.equals(fields))
+            return new LineReadWriteUtil(fields);
         return INSTANCE;
     }
 
     public static LineReadWriteUtil getInstance(List<String> fields, String fieldDelimiter){
         if( INSTANCE == null )
             INSTANCE = new LineReadWriteUtil(fields, fieldDelimiter);
+        else if( !INSTANCE.fields.equals(fields) || !INSTANCE.fieldDelimiter.equals(fieldDelimiter))
+            return new LineReadWriteUtil(fields, fieldDelimiter);
         return INSTANCE;
     }
 
     public static LineReadWriteUtil getInstance(List<String> fields, String fieldDelimiter, String lineDelimiter){
         if( INSTANCE == null )
             INSTANCE = new LineReadWriteUtil(fields, fieldDelimiter, lineDelimiter);
+        else if( !INSTANCE.fields.equals(fields) || !INSTANCE.fieldDelimiter.equals(fieldDelimiter) || !INSTANCE.fieldDelimiter.equals(lineDelimiter))
+            return new LineReadWriteUtil(fields, fieldDelimiter, lineDelimiter);
         return INSTANCE;
     }
 
@@ -123,7 +129,10 @@ public class LineReadWriteUtil {
         }
         if( expectedFields.contains( FieldConstants.SEQ )
                 && parsedFields.length > expectedFields.indexOf(FieldConstants.SEQ)) {
-            seq = new BigInteger(parsedFields[expectedFields.indexOf(FieldConstants.SEQ)]);
+            try {
+                seq = new BigInteger(parsedFields[expectedFields.indexOf(FieldConstants.SEQ)]);
+            } catch( NumberFormatException nfe )
+            { LOGGER.warn("invalid sequence number {}", nfe); }
         }
         if( expectedFields.contains( FieldConstants.TS )
                 && parsedFields.length > expectedFields.indexOf(FieldConstants.TS)) {