diff --git a/AndroidAnnotations/androidannotations-core/androidannotations/src/main/java/org/androidannotations/helper/LogHelper.java b/AndroidAnnotations/androidannotations-core/androidannotations/src/main/java/org/androidannotations/helper/LogHelper.java
new file mode 100644
index 0000000000..78cbb40c81
--- /dev/null
+++ b/AndroidAnnotations/androidannotations-core/androidannotations/src/main/java/org/androidannotations/helper/LogHelper.java
@@ -0,0 +1,54 @@
+/**
+ * Copyright (C) 2010-2016 eBusiness Information, Excilys Group
+ *
+ * Licensed 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.androidannotations.helper;
+
+import org.androidannotations.holder.GeneratedClassHolder;
+
+public final class LogHelper {
+
+ private static final int MAX_TAG_LEN = 23;
+
+ private LogHelper() {
+ }
+
+ /**
+ * Log tag length needs to be limited to 23.
+ *
+ * @see
+ * Log.isLoggable() JavaDoc
+ */
+ public static String trimLogTag(String tag) {
+ if (tag == null) {
+ return "";
+ } else if (tag.length() > MAX_TAG_LEN) {
+ return tag.substring(0, MAX_TAG_LEN);
+ } else {
+ return tag;
+ }
+ }
+
+ /**
+ * Log tag length needs to be limited to 23.
+ *
+ * @see
+ * Log.isLoggable() JavaDoc
+ */
+ public static String logTagForClassHolder(GeneratedClassHolder holder) {
+ return trimLogTag(holder.getGeneratedClass().name());
+ }
+}
diff --git a/AndroidAnnotations/androidannotations-core/androidannotations/src/main/java/org/androidannotations/internal/core/handler/RootContextHandler.java b/AndroidAnnotations/androidannotations-core/androidannotations/src/main/java/org/androidannotations/internal/core/handler/RootContextHandler.java
index e4449cecc9..66fcbbe3dc 100644
--- a/AndroidAnnotations/androidannotations-core/androidannotations/src/main/java/org/androidannotations/internal/core/handler/RootContextHandler.java
+++ b/AndroidAnnotations/androidannotations-core/androidannotations/src/main/java/org/androidannotations/internal/core/handler/RootContextHandler.java
@@ -17,6 +17,7 @@
import static com.helger.jcodemodel.JExpr.cast;
import static com.helger.jcodemodel.JExpr.lit;
+import static org.androidannotations.helper.LogHelper.logTagForClassHolder;
import javax.lang.model.element.Element;
import javax.lang.model.type.TypeMirror;
@@ -82,7 +83,7 @@ public void assignValue(JBlock targetBlock, IJAssignmentTarget fieldRef, EBeanHo
cond._then().add(fieldRef.assign(cast(extendingContextClass, holder.getContextRef())));
JInvocation warningInvoke = getClasses().LOG.staticInvoke("w");
- warningInvoke.arg(holder.getGeneratedClass().name());
+ warningInvoke.arg(logTagForClassHolder(holder));
warningInvoke.arg(lit("Due to Context class ").plus(holder.getContextRef().invoke("getClass").invoke("getSimpleName"))
.plus(lit(", the @RootContext " + extendingContextClass.name() + " won't be populated")));
cond._else().add(warningInvoke);
diff --git a/AndroidAnnotations/androidannotations-core/androidannotations/src/main/java/org/androidannotations/internal/core/handler/TraceHandler.java b/AndroidAnnotations/androidannotations-core/androidannotations/src/main/java/org/androidannotations/internal/core/handler/TraceHandler.java
index 440acd8dfe..7d580f5f05 100644
--- a/AndroidAnnotations/androidannotations-core/androidannotations/src/main/java/org/androidannotations/internal/core/handler/TraceHandler.java
+++ b/AndroidAnnotations/androidannotations-core/androidannotations/src/main/java/org/androidannotations/internal/core/handler/TraceHandler.java
@@ -20,6 +20,7 @@
import static org.androidannotations.helper.AndroidConstants.LOG_INFO;
import static org.androidannotations.helper.AndroidConstants.LOG_VERBOSE;
import static org.androidannotations.helper.AndroidConstants.LOG_WARN;
+import static org.androidannotations.helper.LogHelper.trimLogTag;
import java.util.ArrayList;
import java.util.Arrays;
@@ -83,7 +84,7 @@ public void process(Element element, EComponentHolder holder) throws Exception {
JBlock methodBody = method.body();
JInvocation isLoggableInvocation = getClasses().LOG.staticInvoke("isLoggable");
- isLoggableInvocation.arg(JExpr.lit(tag)).arg(logLevelFromInt(level, getClasses().LOG));
+ isLoggableInvocation.arg(tag).arg(logLevelFromInt(level, getClasses().LOG));
JConditional ifStatement = methodBody._if(isLoggableInvocation);
@@ -243,9 +244,6 @@ private String extractTag(Element element) {
if (Trace.DEFAULT_TAG.equals(tag)) {
tag = element.getEnclosingElement().getSimpleName().toString();
}
- if (tag.length() > 23) {
- tag = tag.substring(0, 23);
- }
- return tag;
+ return trimLogTag(tag);
}
}
diff --git a/AndroidAnnotations/androidannotations-core/androidannotations/src/main/java/org/androidannotations/internal/core/handler/TransactionalHandler.java b/AndroidAnnotations/androidannotations-core/androidannotations/src/main/java/org/androidannotations/internal/core/handler/TransactionalHandler.java
index 494ad5b040..bfcf774e43 100644
--- a/AndroidAnnotations/androidannotations-core/androidannotations/src/main/java/org/androidannotations/internal/core/handler/TransactionalHandler.java
+++ b/AndroidAnnotations/androidannotations-core/androidannotations/src/main/java/org/androidannotations/internal/core/handler/TransactionalHandler.java
@@ -15,6 +15,8 @@
*/
package org.androidannotations.internal.core.handler;
+import static org.androidannotations.helper.LogHelper.logTagForClassHolder;
+
import javax.lang.model.element.Element;
import javax.lang.model.element.ExecutableElement;
@@ -102,7 +104,7 @@ public void process(Element element, EComponentHolder holder) {
JInvocation errorInvoke = catchBody.staticInvoke(getClasses().LOG, "e");
- errorInvoke.arg(holder.getGeneratedClass().name());
+ errorInvoke.arg(logTagForClassHolder(holder));
errorInvoke.arg("Error in transaction");
errorInvoke.arg(exceptionParam);
diff --git a/AndroidAnnotations/androidannotations-ormlite/ormlite/src/main/java/org/androidannotations/ormlite/handler/OrmLiteDaoHandler.java b/AndroidAnnotations/androidannotations-ormlite/ormlite/src/main/java/org/androidannotations/ormlite/handler/OrmLiteDaoHandler.java
index 3b3eed5bc1..d5c92cdaa9 100644
--- a/AndroidAnnotations/androidannotations-ormlite/ormlite/src/main/java/org/androidannotations/ormlite/handler/OrmLiteDaoHandler.java
+++ b/AndroidAnnotations/androidannotations-ormlite/ormlite/src/main/java/org/androidannotations/ormlite/handler/OrmLiteDaoHandler.java
@@ -17,6 +17,7 @@
import static com.helger.jcodemodel.JExpr._new;
import static com.helger.jcodemodel.JExpr.cast;
+import static org.androidannotations.helper.LogHelper.logTagForClassHolder;
import javax.lang.model.element.Element;
import javax.lang.model.type.TypeMirror;
@@ -108,7 +109,7 @@ public void assignValue(JBlock targetBlock, IJAssignmentTarget fieldRef, ECompon
String fieldName = param.getSimpleName().toString();
catchBlock.body() //
.staticInvoke(getClasses().LOG, "e") //
- .arg(holder.getGeneratedClass().name()) //
+ .arg(logTagForClassHolder(holder))//
.arg("Could not create DAO " + fieldName) //
.arg(exception);
}