Log4j最大字符串长度或Java字符串连接错误?

Log4j最大字符串长度或Java字符串连接错误?,java,string,log4j,solaris,Java,String,Log4j,Solaris,在Solaris 10上运行时,当我使用Apache Log4j记录器点击LOG.debug语句时遇到问题。以下代码块演示了基本场景: public class MyClass { private static final Logger LOG = Logger.getLogger(MyClass.class.getName()); private LinkedHashMap<String, String> myMap = new LinkedHash

在Solaris 10上运行时,当我使用Apache Log4j记录器点击LOG.debug语句时遇到问题。以下代码块演示了基本场景:

public class MyClass {
   private static final Logger LOG = Logger.getLogger(MyClass.class.getName());
   private LinkedHashMap<String, String> myMap = 
         new LinkedHashMap<String, String>();

   public static void main(String[] args) {

      // A really long String, but certainly not exceeding 2^31 - 1 characters 
      //long
      String reallyLongString = "A really, really, really...long String";
      String key = "keyToReallyLongString";

      // When this line is executed, Solaris instantly and completely logs me off 
      // of the system
      LOG.debug("Adding to myMap[" + key + "]: " + reallyLongString);
   }
}
公共类MyClass{
私有静态最终记录器LOG=Logger.getLogger(MyClass.class.getName());
私有LinkedHashMap myMap=
新建LinkedHashMap();
公共静态void main(字符串[]args){
//非常长的字符串,但肯定不超过2^31-1个字符
//长的
String reallyllongstring=“一个非常、非常、非常……长的字符串”;
String key=“keyToReallyLongString”;
//执行这一行时,Solaris会立即将我完全注销
//系统的
debug(“添加到myMap[“+key+”]:“+reallyLongString”);
}
}

有什么想法吗?

如果您有任何类型的流程限制,您可能会遇到这些限制。通过进行字符串连接,您将至少使用
(reallyLongString.length()+key.length())*2个字节。如果这足以让您超越限制…

如果您有任何类型的流程限制,您可能会遇到这些限制。通过进行字符串连接,您将至少使用
(reallyLongString.length()+key.length())*2个字节。如果这足以让你超越极限……

我很难相信你会被注销。进程崩溃了,当然,但是注销了?你将不得不提供一个实际失败的测试用例,而不是一个基本的场景……不幸的是,我无法在测试应用程序中复制它,也无法发布实际的代码。在其他情况下,我们有时也会看到这种行为,但这是唯一一次这种行为是一致的。奇怪,真的。。。我不知道是否值得再花时间在这上面。那一行调试输出不值得花这么多时间…我发现很难相信你会被注销。进程崩溃了,当然,但是注销了?你将不得不提供一个实际失败的测试用例,而不是一个基本的场景……不幸的是,我无法在测试应用程序中复制它,也无法发布实际的代码。在其他情况下,我们有时也会看到这种行为,但这是唯一一次这种行为是一致的。奇怪,真的。。。我不知道是否值得再花时间在这上面。这一行调试输出不值得花这么多时间…虽然我仍然不认为字符串长度是一个问题(考虑到您给出的计算,它大约是27000个字符),但我认为您已经掌握了一些东西。在进一步的调查中,我似乎只能在EclipseIDE中运行时复制这个问题。是否有您建议查看的特定内存设置?或者,是否有我不知道的Eclipse富客户端平台应用程序的特定设置?@Adam:恐怕没有……我从来没有看到过这个问题,只是想看看它是否有帮助。尽管我仍然不认为字符串长度是一个问题(考虑到你给出的计算,它大约是27000个字符),我想你知道了什么。在进一步的调查中,我似乎只能在EclipseIDE中运行时复制这个问题。是否有您建议查看的特定内存设置?或者,是否存在我不知道的特定于Eclipse富客户端平台应用程序的设置?@Adam:恐怕没有……我从未真正看到过这个问题,只是想看看它是否有帮助。