This is an automated email from the ASF dual-hosted git repository.
nizhikov pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ignite.git
The following commit(s) were added to refs/heads/master by this push:
new 12cdd74e941 IGNITE-24081 Remove TX_PME_TIMEOUT_SINCE,
DEADLOCK_TIMEOUT_SINCE (#11768)
12cdd74e941 is described below
commit 12cdd74e941dd5ccae2c9b4d8fb7fe4259d6f1b2
Author: Maksim Davydov <[email protected]>
AuthorDate: Thu Jan 2 16:02:41 2025 +0300
IGNITE-24081 Remove TX_PME_TIMEOUT_SINCE, DEADLOCK_TIMEOUT_SINCE (#11768)
---
.../configuration/TransactionConfiguration.java | 29 ------------
.../optimized/OptimizedClassDescriptor.java | 35 +-------------
.../internal/util/TransientSerializable.java | 55 ----------------------
3 files changed, 2 insertions(+), 117 deletions(-)
diff --git
a/modules/core/src/main/java/org/apache/ignite/configuration/TransactionConfiguration.java
b/modules/core/src/main/java/org/apache/ignite/configuration/TransactionConfiguration.java
index 14de853808f..a231f479690 100644
---
a/modules/core/src/main/java/org/apache/ignite/configuration/TransactionConfiguration.java
+++
b/modules/core/src/main/java/org/apache/ignite/configuration/TransactionConfiguration.java
@@ -18,13 +18,10 @@
package org.apache.ignite.configuration;
import java.io.Serializable;
-import java.util.ArrayList;
import java.util.EnumSet;
import java.util.Set;
import javax.cache.configuration.Factory;
-import org.apache.ignite.internal.util.TransientSerializable;
import org.apache.ignite.internal.util.typedef.internal.S;
-import org.apache.ignite.lang.IgniteProductVersion;
import org.apache.ignite.transactions.Transaction;
import org.apache.ignite.transactions.TransactionConcurrency;
import org.apache.ignite.transactions.TransactionIsolation;
@@ -32,7 +29,6 @@ import org.apache.ignite.transactions.TransactionIsolation;
/**
* Transactions configuration.
*/
-@TransientSerializable(methodName = "transientSerializableFields")
public class TransactionConfiguration implements Serializable {
/**
* Supported levels of transaction isolation for SQL queries.
@@ -41,12 +37,6 @@ public class TransactionConfiguration implements
Serializable {
*/
public static final Set<TransactionIsolation>
TX_AWARE_QUERIES_SUPPORTED_MODES =
EnumSet.of(TransactionIsolation.READ_COMMITTED);
- /** */
- private static final IgniteProductVersion TX_PME_TIMEOUT_SINCE =
IgniteProductVersion.fromString("2.5.1");
-
- /** */
- private static final IgniteProductVersion DEADLOCK_TIMEOUT_SINCE =
IgniteProductVersion.fromString("2.7.3");
-
/** */
private static final long serialVersionUID = 0L;
@@ -446,23 +436,4 @@ public class TransactionConfiguration implements
Serializable {
@Override public String toString() {
return S.toString(TransactionConfiguration.class, this);
}
-
- /**
- * Excludes incompatible fields from serialization/deserialization process.
- *
- * @param ver Sender/Receiver node version.
- * @return Array of excluded from serialization/deserialization fields.
- */
- @SuppressWarnings("unused")
- private static String[] transientSerializableFields(IgniteProductVersion
ver) {
- ArrayList<String> transients = new ArrayList<>(2);
-
- if (TX_PME_TIMEOUT_SINCE.compareToIgnoreTimestamp(ver) >= 0)
- transients.add("txTimeoutOnPartitionMapExchange");
-
- if (DEADLOCK_TIMEOUT_SINCE.compareToIgnoreTimestamp(ver) >= 0)
- transients.add("deadlockTimeout");
-
- return transients.isEmpty() ? null : transients.toArray(new
String[transients.size()]);
- }
}
diff --git
a/modules/core/src/main/java/org/apache/ignite/internal/marshaller/optimized/OptimizedClassDescriptor.java
b/modules/core/src/main/java/org/apache/ignite/internal/marshaller/optimized/OptimizedClassDescriptor.java
index ac1a8b61d72..ef5d8ba0ae6 100644
---
a/modules/core/src/main/java/org/apache/ignite/internal/marshaller/optimized/OptimizedClassDescriptor.java
+++
b/modules/core/src/main/java/org/apache/ignite/internal/marshaller/optimized/OptimizedClassDescriptor.java
@@ -50,7 +50,6 @@ import java.util.concurrent.ConcurrentMap;
import org.apache.ignite.internal.binary.GridBinaryMarshaller;
import org.apache.ignite.internal.util.GridUnsafe;
import org.apache.ignite.internal.util.SerializableTransient;
-import org.apache.ignite.internal.util.TransientSerializable;
import org.apache.ignite.internal.util.typedef.F;
import org.apache.ignite.internal.util.typedef.internal.U;
import org.apache.ignite.lang.IgniteProductVersion;
@@ -178,9 +177,6 @@ class OptimizedClassDescriptor {
/** Method returns serializable transient fields. */
private Method serTransMtd;
- /** Method returns transient serializable fields. */
- private Method transSerMtd;
-
/**
* Creates descriptor for class.
*
@@ -490,7 +486,6 @@ class OptimizedClassDescriptor {
readObjMtds.add(mtd);
final SerializableTransient serTransAn =
c.getAnnotation(SerializableTransient.class);
- final TransientSerializable transSerAn =
c.getAnnotation(TransientSerializable.class);
// Custom serialization policy for transient
fields.
if (serTransAn != null) {
@@ -510,24 +505,6 @@ class OptimizedClassDescriptor {
}
}
- // Custom serialization policy for non-transient
fields.
- if (transSerAn != null) {
- try {
- transSerMtd =
c.getDeclaredMethod(transSerAn.methodName(), IgniteProductVersion.class);
-
- int mod = transSerMtd.getModifiers();
-
- if (isStatic(mod) && isPrivate(mod) &&
transSerMtd.getReturnType() == String[].class)
- transSerMtd.setAccessible(true);
- else
- // Set method back to null if it has
incorrect signature.
- transSerMtd = null;
- }
- catch (NoSuchMethodException ignored) {
- transSerMtd = null;
- }
- }
-
Field[] clsFields0 = c.getDeclaredFields();
Map<String, Field> fieldNames = new HashMap<>();
@@ -909,14 +886,13 @@ class OptimizedClassDescriptor {
@SuppressWarnings("ForLoopReplaceableByForEach")
private Fields fields(Class<?> cls, IgniteProductVersion ver) {
if (ver == null // No context available.
- || serTransMtd == null && transSerMtd == null)
+ || serTransMtd == null)
return fields;
try {
final String[] transFields = serTransMtd == null ? null :
(String[])serTransMtd.invoke(null, ver);
- final String[] serFields = transSerMtd == null ? null :
(String[])transSerMtd.invoke(null, ver);
- if (F.isEmpty(transFields) && F.isEmpty(serFields))
+ if (F.isEmpty(transFields))
return fields;
Map<String, FieldInfo> clsFields = new TreeMap<>();
@@ -939,13 +915,6 @@ class OptimizedClassDescriptor {
}
}
- // Exclude non-transient fields which shouldn't be serialized.
- if (!F.isEmpty(serFields)) {
- for (int i = 0; i < serFields.length; i++) {
- clsFields.remove(serFields[i]);
- }
- }
-
List<ClassFields> fields = new ArrayList<>(1);
fields.add(new ClassFields(new ArrayList<>(clsFields.values())));
diff --git
a/modules/core/src/main/java/org/apache/ignite/internal/util/TransientSerializable.java
b/modules/core/src/main/java/org/apache/ignite/internal/util/TransientSerializable.java
deleted file mode 100644
index b583c1b48c5..00000000000
---
a/modules/core/src/main/java/org/apache/ignite/internal/util/TransientSerializable.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * 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.ignite.internal.util;
-
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-import org.apache.ignite.lang.IgniteProductVersion;
-
-/**
- * Marks class as it has non-transient fields that should not be serialized.
- * Annotated class must have method that returns list of non-transient
- * fields that should not be serialized.
- * <p>
- * Works only for jobs. For other messages node version is not available.
- * </p>
- */
-@Retention(RetentionPolicy.RUNTIME)
-@Target(ElementType.TYPE)
-public @interface TransientSerializable {
- /**
- * Name of the private static method that returns list of non-transient
fields
- * that should not be serialized (String[]), and accepts {@link
IgniteProductVersion}, e.g.
- * <pre>
- * private static String[] fields(IgniteProductVersion ver){
- * return ver.compareTo("1.5.30") < 0 ? EXCLUDED_FIELDS : null;
- * }
- * </pre>
- * <p>
- * On serialization version argument <tt>ver</tt> is receiver version
and sender version on deserialization.
- * </p>
- * <p>
- * If it returns empty array or null all non-transient fields will be
normally serialized.
- * </p>
- *
- * @return Name of the method.
- */
- String methodName();
-}