未验证 提交 fa9f7e48 编写于 作者: X Xin,Zhang 提交者: GitHub

Merge pull request #754 from peng-yongsheng/fixed/id_increment_bug

Fixed the id auto increment bug
......@@ -25,18 +25,20 @@ public enum IdAutoIncrement {
INSTANCE;
public int increment(int min, int max) {
int instanceId;
int id;
if (min == max) {
instanceId = -1;
if (min == 0) {
id = -1;
} else {
id = 1;
}
} else if (min + max == 0) {
instanceId = max + 1;
id = max + 1;
} else if (min + max > 0) {
instanceId = min - 1;
} else if (max < 0) {
instanceId = 1;
id = min - 1;
} else {
instanceId = max + 1;
id = max + 1;
}
return instanceId;
return id;
}
}
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/
package org.apache.skywalking.apm.collector.analysis.register.provider.register;
import org.junit.Assert;
import org.junit.Test;
/**
* @author peng-yongsheng
*/
public class IdAutoIncrementTestCase {
@Test
public void testIncrement() {
int id = IdAutoIncrement.INSTANCE.increment(0, 0);
Assert.assertEquals(-1, id);
id = IdAutoIncrement.INSTANCE.increment(-1, -1);
Assert.assertEquals(1, id);
id = IdAutoIncrement.INSTANCE.increment(-1, 1);
Assert.assertEquals(2, id);
id = IdAutoIncrement.INSTANCE.increment(-1, 2);
Assert.assertEquals(-2, id);
id = IdAutoIncrement.INSTANCE.increment(-2, 2);
Assert.assertEquals(3, id);
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册