You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by ag...@apache.org on 2018/11/28 11:52:39 UTC
[08/50] [abbrv] ignite git commit: IGNITE-10381 Fixed U.doInParallel
not to terminate early - Fixes #5483.
IGNITE-10381 Fixed U.doInParallel not to terminate early - Fixes #5483.
Signed-off-by: Alexey Goncharuk <al...@gmail.com>
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/97d24226
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/97d24226
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/97d24226
Branch: refs/heads/ignite-9720
Commit: 97d242263a2b2f8f2c6677df1007a6bd3188522b
Parents: ae5bfad
Author: Alexey Goncharuk <al...@gmail.com>
Authored: Fri Nov 23 19:11:31 2018 +0300
Committer: Alexey Goncharuk <al...@gmail.com>
Committed: Fri Nov 23 19:11:31 2018 +0300
----------------------------------------------------------------------
.../GridCachePartitionExchangeManager.java | 4 +-
.../GridDhtPartitionsExchangeFuture.java | 3 +-
.../ignite/internal/util/IgniteUtils.java | 189 +++----------------
...ynamicCacheStartFailWithPersistenceTest.java | 1 +
.../internal/util/IgniteUtilsSelfTest.java | 43 -----
5 files changed, 34 insertions(+), 206 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/97d24226/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCachePartitionExchangeManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCachePartitionExchangeManager.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCachePartitionExchangeManager.java
index fed5686..6dad367 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCachePartitionExchangeManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCachePartitionExchangeManager.java
@@ -2906,8 +2906,8 @@ public class GridCachePartitionExchangeManager<K, V> extends GridCacheSharedMana
"topVer=" + exchFut.initialVersion() +
", node=" + cctx.localNodeId() + "]. " +
(curTimeout <= 0 && !txRolledBack ? "Consider changing " +
- "TransactionConfiguration.txTimeoutOnPartitionMapSynchronization" +
- " to non default value to avoid this message. " : "") +
+ "TransactionConfiguration.txTimeoutOnPartitionMapSynchronization" +
+ " to non default value to avoid this message. " : "") +
"Dumping pending objects that might be the cause: ");
try {
http://git-wip-us.apache.org/repos/asf/ignite/blob/97d24226/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java
index 9d81405..3384bb9 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java
@@ -1189,7 +1189,8 @@ public class GridDhtPartitionsExchangeFuture extends GridDhtTopologyFutureAdapte
// This exception will be handled by init() method.
throw e;
- U.error(log, "Failed to initialize cache(s) (will try to rollback). " + exchId, e);
+ U.error(log, "Failed to initialize cache(s) (will try to rollback) [exchId=" + exchId +
+ ", caches=" + exchActions.cacheGroupsToStart() + ']', e);
exchangeLocE = new IgniteCheckedException(
"Failed to initialize exchange locally [locNodeId=" + cctx.localNodeId() + "]", e);
http://git-wip-us.apache.org/repos/asf/ignite/blob/97d24226/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java b/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
index f1f4253..2d6b584 100755
--- a/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
@@ -202,7 +202,6 @@ import java.sql.SQLException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
-import java.util.Calendar;
import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;
@@ -221,7 +220,6 @@ import java.util.Random;
import java.util.ServiceLoader;
import java.util.Set;
import java.util.StringTokenizer;
-import java.util.TimeZone;
import java.util.TreeMap;
import java.util.UUID;
import java.util.concurrent.BrokenBarrierException;
@@ -7193,137 +7191,6 @@ public abstract class IgniteUtils {
}
/**
- *
- * @param str ISO date.
- * @return Calendar instance.
- * @throws IgniteCheckedException Thrown in case of any errors.
- */
- public static Calendar parseIsoDate(String str) throws IgniteCheckedException {
- StringTokenizer t = new StringTokenizer(str, "+-:.TZ", true);
-
- Calendar cal = Calendar.getInstance();
- cal.clear();
-
- try {
- if (t.hasMoreTokens())
- cal.set(Calendar.YEAR, Integer.parseInt(t.nextToken()));
- else
- return cal;
-
- if (checkNextToken(t, "-", str) && t.hasMoreTokens())
- cal.set(Calendar.MONTH, Integer.parseInt(t.nextToken()) - 1);
- else
- return cal;
-
- if (checkNextToken(t, "-", str) && t.hasMoreTokens())
- cal.set(Calendar.DAY_OF_MONTH, Integer.parseInt(t.nextToken()));
- else
- return cal;
-
- if (checkNextToken(t, "T", str) && t.hasMoreTokens())
- cal.set(Calendar.HOUR_OF_DAY, Integer.parseInt(t.nextToken()));
- else {
- cal.set(Calendar.HOUR_OF_DAY, 0);
- cal.set(Calendar.MINUTE, 0);
- cal.set(Calendar.SECOND, 0);
- cal.set(Calendar.MILLISECOND, 0);
-
- return cal;
- }
-
- if (checkNextToken(t, ":", str) && t.hasMoreTokens())
- cal.set(Calendar.MINUTE, Integer.parseInt(t.nextToken()));
- else {
- cal.set(Calendar.MINUTE, 0);
- cal.set(Calendar.SECOND, 0);
- cal.set(Calendar.MILLISECOND, 0);
-
- return cal;
- }
-
- if (!t.hasMoreTokens())
- return cal;
-
- String tok = t.nextToken();
-
- if (":".equals(tok)) { // Seconds.
- if (t.hasMoreTokens()) {
- cal.set(Calendar.SECOND, Integer.parseInt(t.nextToken()));
-
- if (!t.hasMoreTokens())
- return cal;
-
- tok = t.nextToken();
-
- if (".".equals(tok)) {
- String nt = t.nextToken();
-
- while (nt.length() < 3)
- nt += "0";
-
- nt = nt.substring(0, 3); // Cut trailing chars.
-
- cal.set(Calendar.MILLISECOND, Integer.parseInt(nt));
-
- if (!t.hasMoreTokens())
- return cal;
-
- tok = t.nextToken();
- }
- else
- cal.set(Calendar.MILLISECOND, 0);
- }
- else
- throw new IgniteCheckedException("Invalid date format: " + str);
- }
- else {
- cal.set(Calendar.SECOND, 0);
- cal.set(Calendar.MILLISECOND, 0);
- }
-
- if (!"Z".equals(tok)) {
- if (!"+".equals(tok) && !"-".equals(tok))
- throw new IgniteCheckedException("Invalid date format: " + str);
-
- boolean plus = "+".equals(tok);
-
- if (!t.hasMoreTokens())
- throw new IgniteCheckedException("Invalid date format: " + str);
-
- tok = t.nextToken();
-
- int tzHour;
- int tzMin;
-
- if (tok.length() == 4) {
- tzHour = Integer.parseInt(tok.substring(0, 2));
- tzMin = Integer.parseInt(tok.substring(2, 4));
- }
- else {
- tzHour = Integer.parseInt(tok);
-
- if (checkNextToken(t, ":", str) && t.hasMoreTokens())
- tzMin = Integer.parseInt(t.nextToken());
- else
- throw new IgniteCheckedException("Invalid date format: " + str);
- }
-
- if (plus)
- cal.set(Calendar.ZONE_OFFSET, (tzHour * 60 + tzMin) * 60 * 1000);
- else
- cal.set(Calendar.ZONE_OFFSET, -(tzHour * 60 + tzMin) * 60 * 1000);
- }
- else
- cal.setTimeZone(TimeZone.getTimeZone("GMT"));
- }
- catch (NumberFormatException ex) {
- throw new IgniteCheckedException("Invalid date format: " + str, ex);
- }
-
- return cal;
- }
-
- /**
* Adds values to collection and returns the same collection to allow chaining.
*
* @param c Collection to add values to.
@@ -7429,20 +7296,6 @@ public abstract class IgniteUtils {
}
/**
- * Parses passed string with specified date.
- *
- * @param src String to parse.
- * @param ptrn Pattern.
- * @return Parsed date.
- * @throws java.text.ParseException If exception occurs while parsing.
- */
- public static Date parse(String src, String ptrn) throws java.text.ParseException {
- java.text.DateFormat format = new java.text.SimpleDateFormat(ptrn);
-
- return format.parse(src);
- }
-
- /**
* Checks if class loader is an internal P2P class loader.
*
* @param o Object to check.
@@ -10841,7 +10694,7 @@ public abstract class IgniteUtils {
batch.result(res);
}
- catch (IgniteCheckedException e) {
+ catch (Throwable e) {
batch.result(e);
}
}
@@ -10854,10 +10707,7 @@ public abstract class IgniteUtils {
Throwable err = batch.error;
if (err != null) {
- if (error == null)
- error = err;
- else
- error.addSuppressed(err);
+ error = addSuppressed(error, err);
continue;
}
@@ -10875,16 +10725,10 @@ public abstract class IgniteUtils {
throw new IgniteInterruptedCheckedException(e);
}
catch (ExecutionException e) {
- if(error == null)
- error = e.getCause();
- else
- error.addSuppressed(e.getCause());
+ error = addSuppressed(error, e.getCause());
}
catch (CancellationException e) {
- if(error == null)
- error = e;
- else
- error.addSuppressed(e);
+ error = addSuppressed(error, e);
}
}
@@ -10905,6 +10749,31 @@ public abstract class IgniteUtils {
}
/**
+ * Utility method to add the given throwable error to the given throwable root error. If the given
+ * suppressed throwable is an {@code Error}, but the root error is not, will change the root to the {@code Error}.
+ *
+ * @param root Root error to add suppressed error to.
+ * @param err Error to add.
+ * @return New root error.
+ */
+ private static Throwable addSuppressed(Throwable root, Throwable err) {
+ assert err != null;
+
+ if (root == null)
+ return err;
+
+ if (err instanceof Error && !(root instanceof Error)) {
+ err.addSuppressed(root);
+
+ root = err;
+ }
+ else
+ root.addSuppressed(err);
+
+ return root;
+ }
+
+ /**
* The batch of tasks with a batch index in global array.
*/
private static class Batch<T,R> {
http://git-wip-us.apache.org/repos/asf/ignite/blob/97d24226/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteDynamicCacheStartFailWithPersistenceTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteDynamicCacheStartFailWithPersistenceTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteDynamicCacheStartFailWithPersistenceTest.java
index 24c9342..8643b66 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteDynamicCacheStartFailWithPersistenceTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteDynamicCacheStartFailWithPersistenceTest.java
@@ -34,6 +34,7 @@ public class IgniteDynamicCacheStartFailWithPersistenceTest extends IgniteAbstra
return 5 * 60 * 1000;
}
+ /** {@inheritDoc} */
@Override protected boolean persistenceEnabled() {
return true;
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/97d24226/modules/core/src/test/java/org/apache/ignite/internal/util/IgniteUtilsSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/util/IgniteUtilsSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/util/IgniteUtilsSelfTest.java
index 39bb21ea..310705b 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/util/IgniteUtilsSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/util/IgniteUtilsSelfTest.java
@@ -38,7 +38,6 @@ import java.net.URL;
import java.nio.ByteBuffer;
import java.util.ArrayList;
import java.util.Arrays;
-import java.util.Calendar;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
@@ -401,48 +400,6 @@ public class IgniteUtilsSelfTest extends GridCommonAbstractTest {
}
/**
- *
- * @throws Exception If failed.
- */
- public void testParseIsoDate() throws Exception {
- Calendar cal = U.parseIsoDate("2009-12-08T13:30:44.000Z");
-
- assert cal.get(Calendar.YEAR) == 2009;
- assert cal.get(Calendar.MONTH) == 11;
- assert cal.get(Calendar.DAY_OF_MONTH) == 8;
- assert cal.get(Calendar.HOUR_OF_DAY) == 13;
- assert cal.get(Calendar.MINUTE) == 30;
- assert cal.get(Calendar.SECOND) == 44;
- assert cal.get(Calendar.MILLISECOND) == 0;
- assert cal.get(Calendar.ZONE_OFFSET) == 0 :
- "Unexpected value: " + cal.get(Calendar.ZONE_OFFSET);
-
- cal = U.parseIsoDate("2009-12-08T13:30:44.000+03:00");
-
- assert cal.get(Calendar.YEAR) == 2009;
- assert cal.get(Calendar.MONTH) == 11;
- assert cal.get(Calendar.DAY_OF_MONTH) == 8;
- assert cal.get(Calendar.HOUR_OF_DAY) == 13;
- assert cal.get(Calendar.MINUTE) == 30;
- assert cal.get(Calendar.SECOND) == 44;
- assert cal.get(Calendar.MILLISECOND) == 0;
- assert cal.get(Calendar.ZONE_OFFSET) == 3 * 60 * 60 * 1000 :
- "Unexpected value: " + cal.get(Calendar.ZONE_OFFSET);
-
- cal = U.parseIsoDate("2009-12-08T13:30:44.000+0300");
-
- assert cal.get(Calendar.YEAR) == 2009;
- assert cal.get(Calendar.MONTH) == 11;
- assert cal.get(Calendar.DAY_OF_MONTH) == 8;
- assert cal.get(Calendar.HOUR_OF_DAY) == 13;
- assert cal.get(Calendar.MINUTE) == 30;
- assert cal.get(Calendar.SECOND) == 44;
- assert cal.get(Calendar.MILLISECOND) == 0;
- assert cal.get(Calendar.ZONE_OFFSET) == 3 * 60 * 60 * 1000 :
- "Unexpected value: " + cal.get(Calendar.ZONE_OFFSET);
- }
-
- /**
* @throws Exception If test failed.
*/
public void testPeerDeployAware0() throws Exception {