[jira] [Commented] (HELIX-584) SimpleDateFormat should not be used as singleton due to its race conditions

2015-04-26 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/HELIX-584?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14513347#comment-14513347
 ] 

ASF GitHub Bot commented on HELIX-584:
--

GitHub user lei-xia opened a pull request:

https://github.com/apache/helix/pull/24

[HELIX-584] SimpleDateFormat should not be used as singleton due to its 
race conditions

[HELIX-584] SimpleDateFormat should not be used as singleton due to its 
race conditions.

You can merge this pull request into a Git repository by running:

$ git pull https://github.com/lei-xia/helix master

Alternatively you can review and apply these changes as the patch at:

https://github.com/apache/helix/pull/24.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

This closes #24


commit a29ac9fb35365d1fe8cf12ef95c58643a5fea36b
Author: Lei Xia l...@linkedin.com
Date:   2015-04-27T00:25:33Z

[HELIX-584] SimpleDateFormat should not be used as singleton due to its 
race conditions.




 SimpleDateFormat should not be used as singleton due to its race conditions
 ---

 Key: HELIX-584
 URL: https://issues.apache.org/jira/browse/HELIX-584
 Project: Apache Helix
  Issue Type: Bug
Reporter: Lei Xia
Assignee: Lei Xia

 SimpleDateFormat is used in workflowConfig as a singleton. But since it is 
 not thread-safe (refer here: 
 http://www.hpenterprisesecurity.com/vulncat/en/vulncat/java/race_condition_format_flaw.html),
  it will mess up the output date format sometime due to race condition. 
 An example trace stack for such failure:
 Message:
 For input string: 2003.E2003E22
 Full Stacktrace:
 java.lang.NumberFormatException: For input string: 2003.E2003E22
 at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1222)
 at java.lang.Double.parseDouble(Double.java:510)
 at java.text.DigitList.getDouble(DigitList.java:151)
 at java.text.DecimalFormat.parse(DecimalFormat.java:1302)
 at java.text.SimpleDateFormat.subParse(SimpleDateFormat.java:1935)
 at java.text.SimpleDateFormat.parse(SimpleDateFormat.java:1311)
 at java.text.DateFormat.parse(DateFormat.java:335)
 at 
 org.apache.helix.task.TaskUtil.parseScheduleFromConfigMap(TaskUtil.java:365)
 at 
 org.apache.helix.task.WorkflowConfig$Builder.fromMap(WorkflowConfig.java:173)
 at org.apache.helix.task.TaskUtil.getWorkflowCfg(TaskUtil.java:113)
 at org.apache.helix.task.TaskUtil.getWorkflowCfg(TaskUtil.java:126)
 at 
 org.apache.helix.integration.task.TestUtil.pollForJobState(TestUtil.java:61)
 at 
 org.apache.helix.integration.task.TestTaskRebalancerStopResume.stopDeleteJobAndResumeRecurrentQueue(TestTaskRebalancerStopResume.java:420)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at 
 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
 at 
 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
 at java.lang.reflect.Method.invoke(Method.java:597)
 at 
 org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:76)
 at org.testng.internal.Invoker.invokeMethod(Invoker.java:673)
 at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:846)
 at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1170)
 at 
 org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:125)
 at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:109)
 at org.testng.TestRunner.runWorkers(TestRunner.java:1147)
 at org.testng.TestRunner.privateRun(TestRunner.java:749)
 at org.testng.TestRunner.run(TestRunner.java:600)
 at org.testng.SuiteRunner.runTest(SuiteRunner.java:317)
 at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:312)
 at org.testng.SuiteRunner.privateRun(SuiteRunner.java:274)
 at org.testng.SuiteRunner.run(SuiteRunner.java:223)
 at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
 at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
 at org.testng.TestNG.runSuitesSequentially(TestNG.java:1039)
 at org.testng.TestNG.runSuitesLocally(TestNG.java:964)
 at org.testng.TestNG.run(TestNG.java:900)
 at 
 org.apache.maven.surefire.testng.TestNGExecutor.run(TestNGExecutor.java:178)
 at 
 org.apache.maven.surefire.testng.TestNGXmlTestSuite.execute(TestNGXmlTestSuite.java:92)
 at 
 org.apache.maven.surefire.testng.TestNGProvider.invoke(TestNGProvider.java:96)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at 
 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
 at 
 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
 at java.lang.reflect.Method.invoke(Method.java:597)
 at 
 

[GitHub] helix pull request: [HELIX-584] SimpleDateFormat should not be use...

2015-04-26 Thread lei-xia
GitHub user lei-xia opened a pull request:

https://github.com/apache/helix/pull/24

[HELIX-584] SimpleDateFormat should not be used as singleton due to its 
race conditions

[HELIX-584] SimpleDateFormat should not be used as singleton due to its 
race conditions.

You can merge this pull request into a Git repository by running:

$ git pull https://github.com/lei-xia/helix master

Alternatively you can review and apply these changes as the patch at:

https://github.com/apache/helix/pull/24.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

This closes #24


commit a29ac9fb35365d1fe8cf12ef95c58643a5fea36b
Author: Lei Xia l...@linkedin.com
Date:   2015-04-27T00:25:33Z

[HELIX-584] SimpleDateFormat should not be used as singleton due to its 
race conditions.




---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---


[jira] [Commented] (HELIX-584) SimpleDateFormat should not be used as singleton due to its race conditions

2015-04-26 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/HELIX-584?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14513557#comment-14513557
 ] 

ASF GitHub Bot commented on HELIX-584:
--

Github user kanakb commented on the pull request:

https://github.com/apache/helix/pull/24#issuecomment-96513218
  
thanks!


 SimpleDateFormat should not be used as singleton due to its race conditions
 ---

 Key: HELIX-584
 URL: https://issues.apache.org/jira/browse/HELIX-584
 Project: Apache Helix
  Issue Type: Bug
Reporter: Lei Xia
Assignee: Lei Xia

 SimpleDateFormat is used in workflowConfig as a singleton. But since it is 
 not thread-safe (refer here: 
 http://www.hpenterprisesecurity.com/vulncat/en/vulncat/java/race_condition_format_flaw.html),
  it will mess up the output date format sometime due to race condition. 
 An example trace stack for such failure:
 Message:
 For input string: 2003.E2003E22
 Full Stacktrace:
 java.lang.NumberFormatException: For input string: 2003.E2003E22
 at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1222)
 at java.lang.Double.parseDouble(Double.java:510)
 at java.text.DigitList.getDouble(DigitList.java:151)
 at java.text.DecimalFormat.parse(DecimalFormat.java:1302)
 at java.text.SimpleDateFormat.subParse(SimpleDateFormat.java:1935)
 at java.text.SimpleDateFormat.parse(SimpleDateFormat.java:1311)
 at java.text.DateFormat.parse(DateFormat.java:335)
 at 
 org.apache.helix.task.TaskUtil.parseScheduleFromConfigMap(TaskUtil.java:365)
 at 
 org.apache.helix.task.WorkflowConfig$Builder.fromMap(WorkflowConfig.java:173)
 at org.apache.helix.task.TaskUtil.getWorkflowCfg(TaskUtil.java:113)
 at org.apache.helix.task.TaskUtil.getWorkflowCfg(TaskUtil.java:126)
 at 
 org.apache.helix.integration.task.TestUtil.pollForJobState(TestUtil.java:61)
 at 
 org.apache.helix.integration.task.TestTaskRebalancerStopResume.stopDeleteJobAndResumeRecurrentQueue(TestTaskRebalancerStopResume.java:420)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at 
 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
 at 
 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
 at java.lang.reflect.Method.invoke(Method.java:597)
 at 
 org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:76)
 at org.testng.internal.Invoker.invokeMethod(Invoker.java:673)
 at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:846)
 at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1170)
 at 
 org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:125)
 at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:109)
 at org.testng.TestRunner.runWorkers(TestRunner.java:1147)
 at org.testng.TestRunner.privateRun(TestRunner.java:749)
 at org.testng.TestRunner.run(TestRunner.java:600)
 at org.testng.SuiteRunner.runTest(SuiteRunner.java:317)
 at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:312)
 at org.testng.SuiteRunner.privateRun(SuiteRunner.java:274)
 at org.testng.SuiteRunner.run(SuiteRunner.java:223)
 at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
 at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
 at org.testng.TestNG.runSuitesSequentially(TestNG.java:1039)
 at org.testng.TestNG.runSuitesLocally(TestNG.java:964)
 at org.testng.TestNG.run(TestNG.java:900)
 at 
 org.apache.maven.surefire.testng.TestNGExecutor.run(TestNGExecutor.java:178)
 at 
 org.apache.maven.surefire.testng.TestNGXmlTestSuite.execute(TestNGXmlTestSuite.java:92)
 at 
 org.apache.maven.surefire.testng.TestNGProvider.invoke(TestNGProvider.java:96)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at 
 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
 at 
 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
 at java.lang.reflect.Method.invoke(Method.java:597)
 at 
 org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray2(ReflectionUtils.java:208)
 at 
 org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:158)
 at 
 org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:86)
 at 
 org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:153)
 at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:95)



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[GitHub] helix pull request: [HELIX-584] SimpleDateFormat should not be use...

2015-04-26 Thread asfgit
Github user asfgit closed the pull request at:

https://github.com/apache/helix/pull/24


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---


[GitHub] helix pull request: [HELIX-584] SimpleDateFormat should not be use...

2015-04-26 Thread kanakb
Github user kanakb commented on the pull request:

https://github.com/apache/helix/pull/24#issuecomment-96513218
  
thanks!


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---