Is java.util.Runtime singleton
Hi,
Is java.util.Runtime a Singleton class ?
-Shishir
\j2sdk1.4.2\jre\lib\rt.jar
GoF was copyrighted in 1995.
Java was released in March of 1995. And Runtime wasin it.
It is a singleton, it just wasn't based on thepattern, largely because the pattern didn't exist
yet. Sort of...
OK.
But when did \j2sdk1.4.2\jre\lib come out? ( :-D,
I've no memory for date)
From the Decompiled code,
can we now safely say it's based upon Singleton
pattern? for \j2sdk1.4.2\jre\lib?
What are you talking about?
Runtime existed in java 1.0. It is pointless to discuss what is in 1.4.2 in this context.
Do you mean there is no conclusive evidence for
Singleton pattern?Huh?
I suspect you do not understand the intent of patterns in GoF.
Patterns in GoF were not added unless there was existing functionality at the time that supported the contention that a pattern existed and was being used.
Just because someone doesn't use the GoF book doesn't mean that they are not creating code that uses the patterns that the GoF book collected.
Likewise I can write a compiler without ever having read the Dragon book.
So despite the likelyhood that Runtime was not developed using GoF that does not mean that it isn't a singleton.
Similar Messages
-
Netbeans 6.7.1 & JavaFX Can't Find java.util.* at Runtime
h1. Problem
Netbeans 6.7.1 & JavaFX Can't Find the JRE classes (i.e. java.util.*) when the project is run (in Netbeans 6.7.1).
h1. Reproduce
Right Click Project_, then Run Project_
init:
deps-jar:
C:\MyJavaFXProject\Source\Java\com\acme\Blah.java:4: cannot find symbol
symbol : class ArrayDeque
location: package java.util
import java.util.ArrayDeque;h1. Workaround
Add all the jar's found in JAVA_HOME. This is VERY BAD - because netbeans projects are no longer portable!
h1. Does anyone else have this problem?
Can you post a link if this problem is already on the forum or is in an Issue/Bug trackers somewhere please.
Thanks for Reading.Thanks for the reply, evidently you are onto something!
My NetBeans 6.7.1 JavaFX project is using the "JavaFX SDK on Java 1.6 (Default)" Platform.When I take a look inside this (using Manage Platforms) I can see that the following is in the list of platform classes:
C:\Program Files\NetBeans 6.7.1\javafx2\javafx-sdk\lib\desktop\rt15.jarI'm assuming that rt15.jar is the java runtime @ version 1.5, and indeed this does NOT contain the Java 6 ArrayDeque ('_Array Deck_') class.
ahhughes@machine-114 /cygdrive/c/Program Files/NetBeans 6.7.1/javafx2/javafx-sdk/lib/desktop
$ jar -tvf rt15.jar | grep "ArrayDeque"
ahhughes@machine-114 /cygdrive/c/Program Files/NetBeans 6.7.1/javafx2/javafx-sdk/lib/desktop
$So my question is, why? If this is the "_NetBeans JavaFX SDK on Java 1.6 (Default)_", then why is it using the 1.5 runtime? It's obviously using 1.6 at compile time... this just seems busted to me. -
Can't load runtime properties in java.util.logging.LogManager
This should be so easy, what am I doing wrong?
I have the following logging.properties located on my classpath:
handlers=java.util.logging.ConsoleHandler
.level=INFO
java.util.logging.ConsoleHandler.level=INFO
java.util.logging.ConsoleHandler.formatter=java.util.logging.SimpleFormatter
Test.level=FINE
Test.handlers=java.util.logging.ConsoleHandlerI have a very simple Test.java file that should load the new properties file and print out the known logger names (ie Test).
I've also tried putting Test.java in a package, it didn't seem to matter.
public class Test {
public Test() {
String name = this.getClass().getName();
//this properties file is should be sitting in same dir as Test class
java.io.InputStream is = this.getClass().getResourceAsStream("logging.properties");
try {
//get log manager instance
java.util.logging.LogManager lm = java.util.logging.LogManager.getLogManager();
//read the new configuration
lm.readConfiguration(is);
//print out list of logger names
java.util.Enumeration e = lm.getLoggerNames();
while (e.hasMoreElements()) {
System.out.println(e.nextElement());
//print logger for this class!
System.out.println("getLogger("+name+"): "+lm.getLogger(name));
} catch (Exception e) {
} finally {
try {
is.close();
is = null;
} catch (Exception e) {}
public static void main(String[] args) {
Test test1 = new Test();
}The output I get from this is a single logger name, and then null for my desired Test logger.
global
getLogger(Test): nullIt seems a logger instance HAS been created for my Test class, I've added the lines below. Though it didn't appear in the logger names enumeration.
java.util.logging.Logger logger = java.util.logging.Logger.getLogger(name);
System.out.println(logger.getName()+"="+logger.getLevel().getName());
logger.severe("severe");
logger.warning("warning");
logger.info("info");
logger.config("config");
logger.fine("fine");
logger.finer("finer");
logger.finest("finest");Output:Test=FINEST
6/10/2003 16:00:01 Test <init>
SEVERE: severe
6/10/2003 16:00:01 Test <init>
WARNING: warning
6/10/2003 16:00:01 Test <init>
INFO: infoObservations:
1) Despite my Test class having the FINEST log level, the default ConsoleHandler had log level of INFO, and hence only up to INFO logged. -
I have a session bean which is published as a web service. The methods in this bean have a return type of java.util.Date.
I am unable to invoke any of these web services method in Studio creator. These work fine with a .NET client. The exception is as follows:
InvocationTargetException com.sun.rave.websvc.ui.ReflectionHelper.callMethodWithParams(ReflectionHelper.java:451) com.sun.rave.websvc.ui.TestWebServiceMethodDlg.invokeMethod(TestWebServiceMethodDlg.java:361) com.sun.rave.websvc.ui.TestWebServiceMethodDlg.access$500(TestWebServiceMethodDlg.java:55) com.sun.rave.websvc.ui.TestWebServiceMethodDlg$4.run(TestWebServiceMethodDlg.java:301) java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:178) java.awt.EventQueue.dispatchEvent(EventQueue.java:454) java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:201) java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151) java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145) java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137) java.awt.EventDispatchThread.run(EventDispatchThread.java:100) null sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) java.lang.reflect.Method.invoke(Method.java:324) com.sun.rave.websvc.ui.ReflectionHelper.callMethodWithParams(ReflectionHelper.java:445) com.sun.rave.websvc.ui.TestWebServiceMethodDlg.invokeMethod(TestWebServiceMethodDlg.java:361) com.sun.rave.websvc.ui.TestWebServiceMethodDlg.access$500(TestWebServiceMethodDlg.java:55) com.sun.rave.websvc.ui.TestWebServiceMethodDlg$4.run(TestWebServiceMethodDlg.java:301) java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:178) java.awt.EventQueue.dispatchEvent(EventQueue.java:454) java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:201) java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151) java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145) java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137) java.awt.EventDispatchThread.run(EventDispatchThread.java:100) Runtime exception; nested exception is: deserialization error: java.lang.NumberFormatException: For input string: "" com.sun.xml.rpc.client.StreamingSender._handleRuntimeExceptionInSend(StreamingSender.java:248) com.sun.xml.rpc.client.StreamingSender._send(StreamingSender.java:230) webservice.AddDates_Stub.addToDay(AddDates_Stub.java:68) webservice.AddDatesServiceClient.adddatesserviceAddToDay(AddDatesServiceClient.java:19) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) java.lang.reflect.Method.invoke(Method.java:324) com.sun.rave.websvc.ui.ReflectionHelper.callMethodWithParams(ReflectionHelper.java:445) com.sun.rave.websvc.ui.TestWebServiceMethodDlg.invokeMethod(TestWebServiceMethodDlg.java:361) com.sun.rave.websvc.ui.TestWebServiceMethodDlg.access$500(TestWebServiceMethodDlg.java:55) com.sun.rave.websvc.ui.TestWebServiceMethodDlg$4.run(TestWebServiceMethodDlg.java:301) java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:178) java.awt.EventQueue.dispatchEvent(EventQueue.java:454) java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:201) java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151) java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145) java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137) java.awt.EventDispatchThread.run(EventDispatchThread.java:100) deserialization error: java.lang.NumberFormatException: For input string: "" com.sun.xml.rpc.encoding.SimpleTypeSerializer.deserialize(SimpleTypeSerializer.java:142) webservice.Date_SOAPSerializer.doDeserialize(Date_SOAPSerializer.java:60) com.sun.xml.rpc.encoding.ObjectSerializerBase.deserialize(ObjectSerializerBase.java:167) com.sun.xml.rpc.encoding.ReferenceableSerializerImpl.deserialize(ReferenceableSerializerImpl.java:134) webservice.AddDates_AddToDay_ResponseStruct2_SOAPSerializer.doDeserialize(AddDates_AddToDay_ResponseStruct2_SOAPSerializer.java:40) com.sun.xml.rpc.encoding.ObjectSerializerBase.deserialize(ObjectSerializerBase.java:167) com.sun.xml.rpc.encoding.ReferenceableSerializerImpl.deserialize(ReferenceableSerializerImpl.java:134) webservice.AddDates_Stub._deserialize_AddToDay(AddDates_Stub.java:489) webservice.AddDates_Stub._readFirstBodyElement(AddDates_Stub.java:458) com.sun.xml.rpc.client.StreamingSender._send(StreamingSender.java:158) webservice.AddDates_Stub.addToDay(AddDates_Stub.java:68) webservice.AddDatesServiceClient.adddatesserviceAddToDay(AddDatesServiceClient.java:19) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) java.lang.reflect.Method.invoke(Method.java:324) com.sun.rave.websvc.ui.ReflectionHelper.callMethodWithParams(ReflectionHelper.java:445) com.sun.rave.websvc.ui.TestWebServiceMethodDlg.invokeMethod(TestWebServiceMethodDlg.java:361) com.sun.rave.websvc.ui.TestWebServiceMethodDlg.access$500(TestWebServiceMethodDlg.java:55) com.sun.rave.websvc.ui.TestWebServiceMethodDlg$4.run(TestWebServiceMethodDlg.java:301) java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:178) java.awt.EventQueue.dispatchEvent(EventQueue.java:454) java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:201) java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151) java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145) java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137) java.awt.EventDispatchThread.run(EventDispatchThread.java:100)Hi Meera
This works fine in creator. I tested with a webservice having a method which returns java.util.date. I used the same code in that method to return java.util.Date. But the same method was returning a Calendar object instead of Date. So I added getTime() method to get the Date.
Can you post few lines of your code that you are writing in Creator.
Thanks
Creator Support -
Executing a shell script from java using runtime.exec()
Hi I am trying to create a script (test_script) and execute it -- all within one java program...
the code compiles and executes perfectly but nothing happens. This is probably because the script does not get changed to the '777' mode although i am trying to do that ... any suggestions ???
//code
import java.io.*;
import java.util.*;
public class ScriptBuilder
public ScriptBuilder() {
public void writeScript() throws java.io.IOException{
FileWriter writer = new FileWriter(new File("test_script"));
writer.write("#! /bin/sh\n");
writer.write("cd prodiags\n");
writer.write("tar cvf delTask.tar delTask\n");
writer.write("rm -rf delTask\n");
writer.flush();
writer.close();
Runtime rt= Runtime.getRuntime();
String[] cmd = new String[3];
cmd[0] = "ls";
cmd[1] = "chmod 777 test_script";
cmd[2] = "./test_script";
rt.exec(cmd);
public static void main (String[] args)throws java.io.IOException
ScriptBuilder sb = new ScriptBuilder();
sb.writeScript();
}I don't know exactly but the code written below is working fine try the same with your code .Even with your code instead running the code with
" ./<filename> ",if you execute it with "sh <filename>" command without changing the mode of the file it is executing properly.
import java.io.*;
import java.util.*;
public class ScriptBuilder
public ScriptBuilder()
public void writeScript() throws java.io.IOException
FileWriter writer = new FileWriter(new File("test_script"));
writer.write("#! /bin/sh\n");
writer.write("ll>/home/faiyaz/javaprac/checkll");
writer.flush();
writer.close();
Runtime rt= Runtime.getRuntime();
rt.exec("chmod 777 test_script");
rt.exec("./test_script");
} public static void main (String[] args)throws java.io.IOException
ScriptBuilder sb = new ScriptBuilder();
sb.writeScript();
} -
I have installed axis but i get the following error java.util.MissingResour
i have installed axis and i get the following error when i try to acces from
http://localhost:8080/axis/axis/index.jsp
java.util.MissingResourceException: Can't find bundle for base name i18n, locale en_US
java.util.ResourceBundle.throwMissingResourceException(ResourceBundle.java:836)
java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:805)
java.util.ResourceBundle.getBundle(ResourceBundle.java:576)
org.apache.jsp.axis.happyaxis_jsp.getRB(happyaxis_jsp.java:325)
org.apache.jsp.axis.happyaxis_jsp.getMessage(happyaxis_jsp.java:421)
org.apache.jsp.axis.happyaxis_jsp.getMessage(happyaxis_jsp.java:359)
org.apache.jsp.axis.happyaxis_jsp._jspService(happyaxis_jsp.java:557)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:334)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)the following is the entire error:
org.apache.jasper.JasperException: Exception in JSP: /axis/i18nLib.jsp:20
17: * limitations under the License.
18: */
19: %>
20:
21: <%@ include file="i18nLib.jsp" %>
22:
23: <%
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:506)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:395)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96) -
Hi,
I'm using BEA WLS8.1 SP4 on HPUX Itanium2 with JDK 1.4.2.05.
When I'm trying to deploy my app's ear file it's throwing
out the error shown below (far below).
I've placed the ear file in /opt/bea_wls/weblogic81/server/bin/myserver/upload directory with all the permissions set.
Please could someone help me resolve this.
Thanks
Mouli
[J2EE:160029]I/O error while reading deployment - java.util.zip.ZipException: Could not find End Of Central Directory. java.util.zip.ZipException: Could not find End Of Central Directory at java.util.zip.ZipFile.open(Ljava.lang.String;I)I(Unknown Source) at java.util.zip.ZipFile.<init>(Ljava.io.File;I)V(Unknown Source) at java.util.jar.JarFile.<init>(Ljava.io.File;ZI)V(JarFile.java:127) at java.util.jar.JarFile.<init>(Ljava.io.File;)V(JarFile.java:92) at weblogic.j2ee.J2EEUtils.getArchiveEarInfo(Ljava.io.File;)Lweblogic.j2ee.DeploymentInfo;(J2EEUtils.java:294) at weblogic.j2ee.J2EEUtils.getDeploymentInfo(Ljava.io.File;)[Lweblogic.j2ee.DeploymentInfo;(J2EEUtils.java:206) at weblogic.j2ee.J2EEUtils.getDeploymentInfo(Lweblogic.application.ApplicationFileManager;)[Lweblogic.j2ee.DeploymentInfo;(J2EEUtils.java:158) at weblogic.j2ee.J2EEApplicationContainerFactory.initializeDeployment(Ljava.io.File;Ljava.lang.String;Ljava.lang.String;Ljava.lang.String;)Lweblogic.management.configuration.ApplicationMBean;(J2EEApplicationContainerFactory.java:464) at weblogic.management.deploy.DeployerRuntime.unprotectedActivate(Ljava.lang.String;Ljava.lang.String;Ljava.lang.String;Lweblogic.management.deploy.DeploymentData;Ljava.lang.String;Z)Lweblogic.management.runtime.DeploymentTaskRuntimeMBean;(DeployerRuntime.java:854) at weblogic.management.deploy.DeployerRuntime.access$000(Lweblogic.management.deploy.DeployerRuntime;Ljava.lang.String;Ljava.lang.String;Ljava.lang.String;Lweblogic.management.deploy.DeploymentData;Ljava.lang.String;Z)Lweblogic.management.runtime.DeploymentTaskRuntimeMBean;(DeployerRuntime.java:69) at weblogic.management.deploy.DeployerRuntime$1.run()Ljava.lang.Object;(DeployerRuntime.java:1532) at weblogic.security.acl.internal.AuthenticatedSubject.doAs(Lweblogic.security.subject.AbstractSubject;Ljava.security.PrivilegedAction;)Ljava.lang.Object;(AuthenticatedSubject.java:321) at weblogic.security.service.SecurityManager.runAs(Lweblogic.security.acl.internal.AuthenticatedSubject;Lweblogic.security.acl.internal.AuthenticatedSubject;Ljava.security.PrivilegedAction;)Ljava.lang.Object;(SecurityManager.java:121) at weblogic.management.deploy.DeployerRuntime.checkAndPerformDeployerActions(Ljava.lang.String;Ljava.lang.String;Ljava.lang.String;Lweblogic.management.deploy.DeploymentData;Ljava.lang.String;ZI)Lweblogic.management.runtime.DeploymentTaskRuntimeMBean;(DeployerRuntime.java:1523) at weblogic.management.deploy.DeployerRuntime.activate(Ljava.lang.String;Ljava.lang.String;Ljava.lang.String;Lweblogic.management.deploy.DeploymentData;Ljava.lang.String;Z)Lweblogic.management.runtime.DeploymentTaskRuntimeMBean;(DeployerRuntime.java:192) at jrockit.reflect.NativeMethodInvoker.invoke0(Ljava.lang.Object;ILjava.lang.Object;[Ljava.lang.Object;)Ljava.lang.Object;(Unknown Source) at jrockit.reflect.NativeMethodInvoker.invoke(Ljava.lang.Object;[Ljava.lang.Object;)Ljava.lang.Object;(Unknown Source) at jrockit.reflect.VirtualNativeMethodInvoker.invoke(Ljava.lang.Object;[Ljava.lang.Object;)Ljava.lang.Object;(Unknown Source) at java.lang.reflect.Method.invoke(Ljava.lang.Object;[Ljava.lang.Object;I)Ljava.lang.Object;(Unknown Source) at weblogic.management.internal.DynamicMBeanImpl.invokeLocally(Ljava.lang.String;[Ljava.lang.Object;[Ljava.lang.String;)Ljava.lang.Object;(DynamicMBeanImpl.java:754) at weblogic.management.internal.DynamicMBeanImpl.invoke(Ljava.lang.String;[Ljava.lang.Object;[Ljava.lang.String;)Ljava.lang.Object;(DynamicMBeanImpl.java:733) at com.sun.management.jmx.MBeanServerImpl.invoke(Ljava.lang.Object;Ljava.lang.String;[Ljava.lang.Object;[Ljava.lang.String;)Ljava.lang.Object;(MBeanServerImpl.java:1560) at com.sun.management.jmx.MBeanServerImpl.invoke(Ljavax.management.ObjectName;Ljava.lang.String;[Ljava.lang.Object;[Ljava.lang.String;)Ljava.lang.Object;(MBeanServerImpl.java:1528) at weblogic.management.internal.RemoteMBeanServerImpl.private_invoke(Ljavax.management.ObjectName;Ljava.lang.String;[Ljava.lang.Object;[Ljava.lang.String;)Ljava.lang.Object;(RemoteMBeanServerImpl.java:988) at weblogic.management.internal.RemoteMBeanServerImpl.invoke(Ljavax.management.ObjectName;Ljava.lang.String;[Ljava.lang.Object;[Ljava.lang.String;)Ljava.lang.Object;(RemoteMBeanServerImpl.java:946) at weblogic.management.internal.MBeanProxy.invoke(Ljava.lang.String;[Ljava.lang.Object;)Ljava.lang.Object;(MBeanProxy.java:954) at weblogic.management.internal.MBeanProxy.invokeForCachingStub(Ljava.lang.String;[Ljava.lang.Object;)Ljava.lang.Object;(MBeanProxy.java:481) at weblogic.management.runtime.DeployerRuntimeMBean_Stub.activate(Ljava.lang.String;Ljava.lang.String;Ljava.lang.String;Lweblogic.management.deploy.DeploymentData;Ljava.lang.String;Z)Lweblogic.management.runtime.DeploymentTaskRuntimeMBean;(DeployerRuntimeMBean_Stub.java:1139) at weblogic.management.console.actions.mbean.ApplicationDeployAction.prePerform(Lweblogic.management.console.actions.ActionContext;Lweblogic.management.console.actions.RequestableAction;)Lweblogic.management.console.actions.RequestableAction;(ApplicationDeployAction.java:179) at weblogic.management.console.actions.mbean.DoMBeanWizardAction.perform(Lweblogic.management.console.actions.ActionContext;)Lweblogic.management.console.actions.Action;(DoMBeanWizardAction.java:215) at weblogic.management.console.actions.internal.ActionServlet.doAction(Ljavax.servlet.http.HttpServletRequest;Ljavax.servlet.http.HttpServletResponse;)V(ActionServlet.java:173)Hi
THis may be due to the file was FTP to the directory as ASCII mode ...
Or the file is corrupt.
Try to pacgake again (with jar command)
Jin -
What's wrong with java.util.Date type?
Hi!
When I try to persist object having field of type java.util.Date I get the
following SQL logged by Kodo with subsequent transaction rollback:
2002-11-14 15:03:35,099 INFO
[com.solarmetric.kodo.impl.jdbc.ee.ManagedConnecti
onFactoryImpl.supportcrm/kodo] INSERT INTO BILLY.TT_COMMENTS(COMMENT_TYPE,
TEXT,
CREATED_BY, ID, SUBJECT, CREATE_DATE, TT_MAIN_ID) VALUES (1, '1', 10, 279,
'1',
{ts '2002-11-14 15:03:35.059'}, 147)
When I change "{ts '2002-11-14 15:03:35.059'}" with "TO_DATE('2002-11-14
15:03', 'YYYY-DD-MM HH24:MI')" in SQL editor
and execute it everything works fine.
What does "{ts '..'}" mean? Is it a SQL generation error?
Thank you in advance.
Best regards,
Alexey MaslovI've created my own dictionary with dateToSQL() method overridden.
Now it works fine. But it's a kind of strange. Oracle is used often and my
JDBC drivers
are the most recent (at least, from the oracle.com).
Anyway, thank you again.
"Alexey Maslov" <[email protected]> wrote in message
news:[email protected]...
Patric,
Thank you for response.
We're using Oracle 8.1.7 via OCI driver from Oracle 9.2.
I've already tried 2.4.0 and it works fine there but I've found another
problem there
preventing me from using it. See my post in solarmetric.kodo.betanewsgroup.
>
"Patrick Linskey" <[email protected]> wrote in message
news:[email protected]...
That's odd -- what version of Oracle are you using?
Moving to Kodo JDO 2.4.0
(http://www.solarmetric.com/Software/beta/2.4.0) will almost certainly
get rid of this problem, as we use exclusively prepared statements in
it, and therefore pass dates etc. to JDBC as parameters.
But, to get things working with your Oracle database and Kodo JDO 2.3,
you could create your own extension of OracleDictionary and override the
dateToSQL() method to generate the appropriate TO_DATE() syntax. See our
documentation for more details on creating custom database dictionaries.
-Patrick
Alexey Maslov wrote:
I've added TRACE level logging for transactions in JBoss and got
original
exception:
NestedThrowables:
com.solarmetric.kodo.impl.jdbc.sql.SQLExceptionWrapper: [SQL=INSERT
INTO
BILLY.T
T_MAIN(TT_SOLUTION_ID, DELAY_REASON, TT_STATE_ID, ID, CONTACT_PHONE,
CANCEL_REAS
ON, OPER_DESCR, TT_TYPE_ID, CREATED_BY, EXP_CLOSE_DATE,SERV_OPEN_DATE,
OPEN_DAT
E, FLAGS, TAKEN_BY, TT_CAT_ID, SUBJECT_ID, SUBJECT, SERV_CLOSE_DATE)
VALUES
(NUL
L, NULL, 1, 439, NULL, NULL, '____________ ________________ ________________', 7, 5, {ts
'2002-11-14 1
8:38:16.075'}, NULL, {ts '2002-11-14 18:18:16.075'}, 0, NULL, 11,24099,
'1', NU
LL)] ORA-00904: invalid column name
at
com.solarmetric.kodo.impl.jdbc.runtime.SQLExceptions.throwFatal(SQLEx
ceptions.java:17)
at
com.solarmetric.kodo.impl.jdbc.runtime.JDBCStoreManager.insert(JDBCSt
oreManager.java:421)
at
com.solarmetric.kodo.runtime.datacache.DataCacheStoreManager.insert(D
ataCacheStoreManager.java:265)
at
com.solarmetric.kodo.runtime.StateManagerImpl.insert(StateManagerImpl
..java:1783)
atcom.solarmetric.kodo.runtime.PNewState.flush(PNewState.java:31)
at
com.solarmetric.kodo.runtime.StateManagerImpl.flush(StateManagerImpl.
java:372)
at
com.solarmetric.kodo.runtime.PersistenceManagerImpl.flush(Persistence
ManagerImpl.java:426)
at
com.solarmetric.kodo.ee.EEPersistenceManager.beforeCompletion(EEPersi
But when I try to execute the statement above against the database
manually
everything works fine.
I'm absolutely desperate!
P.S. On 2.4.0 RC the operation invoking this database insert completes
fine.
"Alexey Maslov" wrote in message
news:[email protected]...
Hi!
When I try to persist object having field of type java.util.Date I
get
the
following SQL logged by Kodo with subsequent transaction rollback:
2002-11-14 15:03:35,099 INFO
[com.solarmetric.kodo.impl.jdbc.ee.ManagedConnecti
onFactoryImpl.supportcrm/kodo] INSERT INTOBILLY.TT_COMMENTS(COMMENT_TYPE,
TEXT,
CREATED_BY, ID, SUBJECT, CREATE_DATE, TT_MAIN_ID) VALUES (1, '1',
10,
>>>
279,
'1',
{ts '2002-11-14 15:03:35.059'}, 147)
When I change "{ts '2002-11-14 15:03:35.059'}" with
"TO_DATE('2002-11-14
15:03', 'YYYY-DD-MM HH24:MI')" in SQL editor
and execute it everything works fine.
What does "{ts '..'}" mean? Is it a SQL generation error?
Thank you in advance.
Best regards,
Alexey Maslov
Patrick Linskey [email protected]
SolarMetric Inc. http://www.solarmetric.com
Best regards,
Alexey Maslov -
Hi,
I have currently created a java mapping which unzips files and transforms plain text/falt files to xml according to a specific structure... So far so good. This stuff works perfectly when testing interface mapping in the repository. However at runtime it does not work, and this is where you clever guys come into the picture:-)
It should be mentioned that the zip-file is dropped on a MQ-queue and picked up in XI and passed on to a BPM - the only thing the BPM does is to perform the java mapping and afterwards send one of the messages to R/3 and the other to CRM.
The concrete error given at runtime in the PE is:
Error handling for work item 000000718016
Work item 000000718016: Object CL_SWF_XI_MSG_BROKER method CALL_TRANSFORMATION cannot be executed
Parsing error before mapping: unexpected end-of-file (line 1, column 1)
Hope somone can help me on this matter,
Best regards,
Daniel
PS: In case it is of interest/use the java code used is this:
package dk.post.xi.unzipAndConvert;
import java.io.*;
import java.util.Map;
import java.util.HashMap;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
import com.sap.aii.mapping.api.MappingTrace;
import com.sap.aii.mapping.api.StreamTransformation;
import com.sap.aii.mapping.api.StreamTransformationConstants;
import com.sap.aii.mapping.api.StreamTransformationException;
public class UnzipMain implements StreamTransformation {
private MappingTrace mappingTrace = null;
private Map param = null;
private StringBuffer currentXmlRecord = new StringBuffer();
private StringBuffer currentPlainRecord = new StringBuffer();
private int[][] dataRanges = null;
private char[] charsInCurrentRange = new char[650];
private String[] xmlTagNames = null;
/* (non-Javadoc)
@see com.sap.aii.mapping.api.StreamTransformation#setParameter(java.util.Map)
Method must be implemented when class is implementing streamTransformation
public void setParameter(Map param) {
this.param = param;
if (param == null) {
this.param = new HashMap();
(non-Javadoc)
@see com.sap.aii.mapping.api.StreamTransformation#execute(java.io.InputStream, java.io.OutputStream)
Main function -- called by XI to start execution of java mapping
public final void execute(InputStream in, OutputStream out)
throws StreamTransformationException
//if no input, then cancel program execution
if (in == null) {
throw new RuntimeException("Something wrong with input zip file - is null");
//input <> null. Begin upzip operation
try {
//test is only relevant outside of XI
if (param != null) {
mappingTrace = (MappingTrace) param.get(StreamTransformationConstants.MAPPING_TRACE );
ZipInputStream zip = null;
try {
zip = new ZipInputStream(in);
ZipEntry ze = null;
out.write("<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?><ns0:Messages xmlns:ns0=\"http://sap.com/xi/XI/SplitAndMerge\">".getBytes());
while ((ze = zip.getNextEntry()) != null) {
writeDebugInfo("File: " + ze.getName() + " with compressed size: " + ze.getCompressedSize());
scrutinize(zip,(ZipEntry) ze, out);
out.write("</ns0:Messages>".getBytes());
finally {
if (zip != null)
zip.close();
out.flush();
out.close();
} catch (Exception e) {
throw new RuntimeException(e + "\nSomething went wrong...");
//Unzip flat files and convert to xml
private void scrutinize(ZipInputStream inStream,ZipEntry zipEntry, OutputStream outstream) throws Exception {
long start = System.currentTimeMillis();
InputStreamReader inStreamReader = null;
BufferedReader buffReader = null;
byte[] xmlBytes = null;
try {
inStreamReader = new InputStreamReader(inStream);
buffReader = new BufferedReader(inStreamReader);
boolean masterData = zipEntry.getName().equals("PD-01-STAMDATA.DAT");
boolean creditData = zipEntry.getName().equals("PD-02-KREDITVURDERING.DAT");
String currentLine = null;
if (masterData) {
writeDebugInfo("- Begin reading and converting every line of MasterData..."); //out-comment this outside of XI, or compilation will fail (functionality is only available in XI)
outstream.write("<ns0:Message1><ns1:masterData_MT xmlns:ns1=\"http://pdk/xi/kob/importDataToSap\">".getBytes());
while ((currentLine = buffReader.readLine()) != null) {
//convert one line of credit data plain into an xml record structure
makeXmlRecord(currentLine,true);
//Write record XML to XI's outputstream (appends)
xmlBytes = currentXmlRecord.toString().getBytes();
outstream.write(xmlBytes);
outstream.write("</ns1:masterData_MT></ns0:Message1>".getBytes());
writeDebugInfo("- Finished reading and converting every line of MasterData..."); //out-comment this outside of XI, or compilation will fail (functionality is only available in XI)
if (creditData) {
writeDebugInfo("- Begin reading and converting every line of CreditData...");
outstream.write("<ns0:Message2><ns1:creditData_MT xmlns:ns1=\"http://pdk/xi/kob/importDataToSap\">".getBytes());
while ((currentLine = buffReader.readLine()) != null) {
//convert one line of credit data plain into an xml record structure
makeXmlRecord(currentLine,false);
//Write record XML to XI's outputstream (appends)
xmlBytes = currentXmlRecord.toString().getBytes();
outstream.write(xmlBytes);
outstream.write("</ns1:creditData_MT></ns0:Message2>".getBytes());
writeDebugInfo("- Finished reading and converting every line of CreditData...");
} finally {
long timeUsed = System.currentTimeMillis() - start;
writeDebugInfo(zipEntry.getName() + " - Write took: " + timeUsed + " ms");
writeDebugInfo("Final statement entered...\n");
//check for invalid xml chars (plus a few other strange chars) in a plain text record and if any are found update the ranges of so they correspond to the new length of a record
private int[][] checkRange(String currentPlainLine, boolean isMasterData) {
int counter = 0;
int beginRange = 0;
int endRange = 0;
//populate array with proper data ranges/intervals according to how data is to be split
dataRanges = isMasterData ? new int[][] {{0,2},{2,12},{12,44},{44,47},{47,50},{50,295},{295,298},{298,356},{356,426},{426,496},{496,499},{499,506},{506,510},{510,518},{518,540},{540,546},{546,552},{552,558},{558,564},{564,570},{570,576},{576,582},{582,588},{588,594},{594,604}} : new int[][] {{0,2},{2,12},{12,20},{20,23},{23,26},{26,29},{29,44}};
//ensure stringbuffer is empty
currentPlainRecord.delete(0,currentPlainRecord.length());
//insert the current plain text line into stringbuffer
currentPlainRecord.append(currentPlainLine);
//loop through outer array (array of ranges)
for (int i = 0; i <= (dataRanges.length-1); i++) {
beginRange = dataRanges<i>[0];
counter = beginRange;
endRange = dataRanges<i>[1];
//loop through stringbuffer, based on the value-pairs of ranges/intervals in array of arrays
while (counter < endRange) {
switch (currentPlainRecord.charAt(counter)) {
case '&':
currentPlainRecord.insert(counter+1,"amp;"); //insert 'amp;' after '&', so that syntax conforms to xml syntax requirements (&)
counter += 5; //increment counter so that it continues after insertet characters
updateRange(counter,4); //update the array of ranges so that is corresponds to the new range
break;
case '\'':
currentPlainRecord.replace(counter,counter+1,"&"); //replace '\'' with '&'
currentPlainRecord.insert(counter+1,"apos;"); //insert 'apos;' after '\'', so that syntax conforms to xml syntax requirements (')
counter += 6; //increment counter so that it continues after insertet characters
updateRange(counter,5); //update the array of ranges so that is corresponds to the new range
break;
case '"':
currentPlainRecord.replace(counter,counter+1,"&"); //replace '"' with '&'
currentPlainRecord.insert(counter+1,"quot;"); //insert 'quot;' after '"', so that syntax conforms to xml syntax requirements (")
counter += 6; //increment counter so that it continues after insertet characters
updateRange(counter,5); //update the array of ranges so that is corresponds to the new range
break;
case '<':
currentPlainRecord.replace(counter,counter+1,"&"); //replace '<' with '&'
currentPlainRecord.insert(counter+1,"lt;"); //insert 'lt;' after '&', so that syntax conforms to xml syntax requirements (<)
counter += 4; //increment counter so that it continues after insertet characters
updateRange(counter,3); //update the array of ranges so that is corresponds to the new range
break;
case '>':
currentPlainRecord.replace(counter,counter+1,"&"); //replace '>' with '&'
currentPlainRecord.insert(counter+1,"gt;"); //insert 'gt;' after '&', so that syntax conforms to xml syntax requirements (>)
counter += 4; //increment counter so that it continues after insertet characters
updateRange(counter,3); //update the array of ranges so that is corresponds to the new range
break;
case 0x7F:
currentPlainRecord.replace(counter,counter+1," "); //replace 0x7F with ' '
writeDebugInfo("-- Corrected the character 0x7F ('') to ' '");
counter++;
break;
case '':
currentPlainRecord.replace(counter,counter+1," "); //replace 0x91 ('') with ' '
writeDebugInfo("-- Corrected the character '' to ' '");
counter++;
break;
case '':
currentPlainRecord.replace(counter,counter+1," "); //replace 0x9B ('') with ' '
writeDebugInfo("-- Corrected the character 0x9B to ' '"); counter++;
break;
case '':
currentPlainRecord.replace(counter,counter+1," "); //replace '' with ' '
writeDebugInfo("-- Corrected the character '' to ' '");
counter++;
break;
default :
counter++;
break;
return dataRanges;
//update array of ranges so that is corresponds to the new range
private void updateRange(int currentRange, int updateRangeBy) {
for (int k = currentRange; k < dataRanges.length; k++) {
if (k != currentRange) { //never update begin interval for the current range - only for the remaining intervals
dataRanges[k][0] += updateRangeBy;
dataRanges[k][1] += updateRangeBy; //always update end intervals
//convert one flat record line to a xml record structure
private void makeXmlRecord(String currentPlainLine,boolean isMasterData) {
dataRanges = checkRange(currentPlainLine,isMasterData);
//clear StringBuffer
currentXmlRecord.delete(0,currentXmlRecord.length());
//get the correct set of xml tags to be used when performing mapping between plain text and xml
if (isMasterData) {
xmlTagNames = new String[] {"dum1","kob_no","dum2","corp_status","legal_form","dum3","pr_protec_code","dum4","uri","email","emp_no_grp_code","exact_no_emp","dum5","founding_date","dum6","main_industry_code","industry_code1","industry_code2","industry_code3","industry_code4","industry_code5","industry_code6","industry_code7","industry_code8","dum7"};
} else {
xmlTagNames = new String[] {"dum1","kob_no","rating_date","rating_value","risc_grp_code","currency","max_credit"};
//copy all chars in stringBuffer to the specified char[]
currentPlainRecord.getChars(0,currentPlainRecord.length(),charsInCurrentRange,0);
//populate XML record structure
currentXmlRecord.append("<record>");
for (int i = 0; i < xmlTagNames.length; i++) {
currentXmlRecord.append("<" + xmlTagNames<i> + ">");
currentXmlRecord.append(charsInCurrentRange,dataRanges<i>[0],(dataRanges<i>[1])-(dataRanges<i>[0]));
currentXmlRecord.append("</" + xmlTagNames<i> + ">");
currentXmlRecord.append("</record>");
//write debug information to correct "place"
private void writeDebugInfo(String debugInfo) {
if (mappingTrace == null) {
System.out.println("Debug: " + debugInfo);
} else {
mappingTrace.addInfo("Debug: " + debugInfo);Hi Alex,
Thanks for your reply. First of all I was wondering if I missed something somewhere in my generel understanding of XI and BPM's!? - I kind of sense some irony/sarkasm in beginning of your reply:-) As far as I know BPM should have no trouble receing non-xml (in my case zip-files)!?
Anyways here goes:
1. Yes, this is also my impression that is should be possible somehow (we do currently run sp14). However, I havent yet figured out how to do it in this case. When trying to create interface mapping between the three involved software components, I get a 'MESS_MULTI_MAP_IF_WRONG_SWCV' three times. I've searched around without being able to find any information on the error. I does seem, though, like the problem is that all objects aren't in the same software component!! But this approach is of course the prefered one...
2. Well - you got me there. Kind of expected someone to point that out:-) This is of course something to be looked into also in order to "improve"/"enhance" the program - though it, as already pointed out, works perfectly as is.
3. This part I have also thought about - though quickly moved away from the idea, but that is only due to lacking insight/knowhow on the subject. Interesting weblog you have written, something so I will investigate further when time allows for it:-)
Best regards,
Daniel -
We sometimes see this failure intermitently when using the FlexUnit Ant task to run tests in a CI environment. The Ant task throws this exception:
java.util.concurrent.ExecutionException: could not close client/server socket
I have seen this for a while now, and still see it with the latest 4.1 RC versions.
Here is the console output seen along with the above exception:
FlexUnit player target: flash
Validating task attributes ...
Generating default values ...
Using default working dir [C:\DJTE\commons.formatter_swc\d3flxcmn32\extracted\Source\Flex]
Using the following settings for the test run:
FLEX_HOME: [C:\dev\vert-d3flxcmn32\302100.41.0.20110323122739_d3flxcmn32]
haltonfailure: [false]
headless: [false]
display: [99]
localTrusted: [true]
player: [flash]
port: [1024]
swf: [C:\DJTE\commons.formatter_swc\d3flxcmn32\extracted\build\commons.formatter.tests.unit.sw f]
timeout: [1800000ms]
toDir: [C:\DJTE\commons.formatter_swc\d3flxcmn32\reports\xml]
Setting up server process ...
Entry [C:\DJTE\commons.formatter_swc\d3flxcmn32\extracted\build] already available in local trust file at [C:\Users\user\AppData\Roaming\Macromedia\Flash Player\#Security\FlashPlayerTrust\flexUnit.cfg].
Executing 'rundll32' with arguments:
'url.dll,FileProtocolHandler'
'C:\DJTE\commons.formatter_swc\d3flxcmn32\extracted\build\commons.formatter.tests.unit.swf '
The ' characters around the executable and arguments are
not part of the command.
Starting server ...
Opening server socket on port [1024].
Waiting for client connection ...
Client connected.
Setting inbound buffer size to [262144] bytes.
Receiving data ...
Sending acknowledgement to player to start sending test data ...
Stopping server ...
End of test data reached, sending acknowledgement to player ...
When the problem occurs, it is not always during the running of any particular test (that I am aware of). Recent runs where this failure was seen had the following number of tests executed (note: the total number that should be run is 45677): 18021, 18, 229.
Here is a "good" run when the problem does not occur:
Setting inbound buffer size to [262144] bytes.
Receiving data ...
Sending acknowledgement to player to start sending test data ...
Stopping server ...
End of test data reached, sending acknowledgement to player ...
Closing client connection ...
Closing server on port [1024] ...
Analyzing reports ...
Suite: com.formatters.help.TestGeographicSiteUrls
Tests run: 5, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.008 sec
Suite: com.formatters.functionalUnitTest.testCases.TestNumericUDF
Tests run: 13, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.071 sec
Results :
Tests run: 45,677, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 201.186 sec
Has anyone else ran across this problem?
Thanks,
TrevorI am not sure if this information will help everyone, but here goes...
For us, these problems with FlexUnit tests crashing the Flash Player appear to be related to couple of factors. Recently, we moved up from Flex 3.2 to Flex 4.1 as our development baseline. Many people complained that their development environment (Flash Builder, etc.) was much more unstable. Apparently, 4.1 produces SWFs that require more memory to run than 3.2 does? Anyway, we still had Flash Player 10.1 as our runtime baseline. Apparently, that version of the player was not as capable of running larger FlexUnit test SWFs, and would crash (as I posted months earlier). I upgraded to the latest 10.3 standalone player versions, and the crashes have now ceased. It would be nice to know exactly what was causing the crashes, but memory management (or lack of) is my best guess.
So, if you are seeing these issues, try upgrading to the latest Flash Player version.
Regards,
Trevor -
I am receiving the following exception in our app at what appears to be
random intervals.
There were multiple users logged into the system, each getting their own
persistence manager (by way of pmFactory.getPersistenceManager(), which
are then stored in the http session and re-used as long as that user is
logged in) and when they started accessing the system simultaneously
everything was fine for a while (ranged from 30min to 3 hours) then one
person would see the exception, then others would see the exception right
after. Then a few minutes later the problem would be gone again for a
while
I have the multithread option set to true in kodo.properties and am using
pessimistic transactions
Using kodo 3.3.3
I am just curious what might cause something like this, it seems as though
2 threads are trying to commit the same data with the same persistence
manager to me.
My next step in debugging this process is extending the persistence
manager object to add some logging and see if my theory is correct.
Any pointers to tracking this down would be greatly appreciated
kodo.util.FatalDataStoreException: java.util.NoSuchElementException
at
kodo.runtime.PersistenceManagerImpl.afterCompletion(PersistenceManagerImpl.java:1020)
at kodo.runtime.LocalManagedRuntime.commit(LocalManagedRuntime.java:86)
at
kodo.runtime.PersistenceManagerImpl.commit(PersistenceManagerImpl.java:629)
at
com.stchome.cdr.actions.SearchCriteriaWizardAction.searchQbe(SearchCriteriaWizardAction.java:345)
at sun.reflect.GeneratedMethodAccessor355.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at
org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:280)
at
org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:216)
at
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
at
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
at
com.stchome.cdr.servlet.CdrActionServlet.process(CdrActionServlet.java:31)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at
com.stchome.cdr.servlet.filters.SessionManagerFilter.doFilter(SessionManagerFilter.java:41)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at
org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:300)
at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:374)
at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:743)
at
org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:675)
at org.apache.jk.common.SocketConnection.runIt(ChannelSocket.java:866)
at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
at java.lang.Thread.run(Thread.java:534)
NestedThrowablesStackTrace:
java.util.NoSuchElementException
at serp.util.LookaheadIterator.next(LookaheadIterator.java:57)
at
com.solarmetric.apache.commons.collections.iterators.IteratorChain.next(IteratorChain.java:264)
at kodo.util.CacheMap$EntryIterator.next(CacheMap.java:654)
at java.util.AbstractCollection.toArray(AbstractCollection.java:174)
at java.util.ArrayList.<init>(ArrayList.java:136)
at kodo.datacache.QueryCacheImpl.keySet(QueryCacheImpl.java:165)
at
kodo.datacache.AbstractQueryCache.classesChanged(AbstractQueryCache.java:60)
at
kodo.datacache.DataCacheStoreManager.updateCaches(DataCacheStoreManager.java:217)
at
kodo.datacache.DataCacheStoreManager.commit(DataCacheStoreManager.java:73)
at
kodo.runtime.PersistenceManagerImpl.endTransaction(PersistenceManagerImpl.java:1317)
at
kodo.runtime.PersistenceManagerImpl.afterCompletion(PersistenceManagerImpl.java:998)
at kodo.runtime.LocalManagedRuntime.commit(LocalManagedRuntime.java:86)
at
kodo.runtime.PersistenceManagerImpl.commit(PersistenceManagerImpl.java:629)
at
com.stchome.cdr.actions.SearchCriteriaWizardAction.searchQbe(SearchCriteriaWizardAction.java:345)
at sun.reflect.GeneratedMethodAccessor355.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at
org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:280)
at
org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:216)
at
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
at
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
at
com.stchome.cdr.servlet.CdrActionServlet.process(CdrActionServlet.java:31)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at
com.stchome.cdr.servlet.filters.SessionManagerFilter.doFilter(SessionManagerFilter.java:41)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at
org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:300)
at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:374)
at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:743)
at
org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:675)
at org.apache.jk.common.SocketConnection.runIt(ChannelSocket.java:866)
at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
at java.lang.Thread.run(Thread.java:534)Thank you stephen, that reply is like music to my ears :)
Stephen Kim wrote:
I would upgrade to 3.3.4 or 3.4 as they have resolved that bug.
Damian Bradicich wrote:
I am receiving the following exception in our app at what appears to be
random intervals.
There were multiple users logged into the system, each getting their own
persistence manager (by way of pmFactory.getPersistenceManager(), which
are then stored in the http session and re-used as long as that user is
logged in) and when they started accessing the system simultaneously
everything was fine for a while (ranged from 30min to 3 hours) then one
person would see the exception, then others would see the exception right
after. Then a few minutes later the problem would be gone again for a
while
I have the multithread option set to true in kodo.properties and am using
pessimistic transactions
Using kodo 3.3.3
I am just curious what might cause something like this, it seems as though
2 threads are trying to commit the same data with the same persistence
manager to me.
My next step in debugging this process is extending the persistence
manager object to add some logging and see if my theory is correct.
Any pointers to tracking this down would be greatly appreciated
kodo.util.FatalDataStoreException: java.util.NoSuchElementException
at
kodo.runtime.PersistenceManagerImpl.afterCompletion(PersistenceManagerImpl.java:1020)
at kodo.runtime.LocalManagedRuntime.commit(LocalManagedRuntime.java:86)
at
kodo.runtime.PersistenceManagerImpl.commit(PersistenceManagerImpl.java:629)
at
com.stchome.cdr.actions.SearchCriteriaWizardAction.searchQbe(SearchCriteriaWizardAction.java:345)
at sun.reflect.GeneratedMethodAccessor355.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at
org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:280)
at
org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:216)
at
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
at
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
at
com.stchome.cdr.servlet.CdrActionServlet.process(CdrActionServlet.java:31)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at
com.stchome.cdr.servlet.filters.SessionManagerFilter.doFilter(SessionManagerFilter.java:41)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at
org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:300)
at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:374)
at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:743)
at
org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:675)
at org.apache.jk.common.SocketConnection.runIt(ChannelSocket.java:866)
at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
at java.lang.Thread.run(Thread.java:534)
NestedThrowablesStackTrace:
java.util.NoSuchElementException
at serp.util.LookaheadIterator.next(LookaheadIterator.java:57)
at
com.solarmetric.apache.commons.collections.iterators.IteratorChain.next(IteratorChain.java:264)
at kodo.util.CacheMap$EntryIterator.next(CacheMap.java:654)
at java.util.AbstractCollection.toArray(AbstractCollection.java:174)
at java.util.ArrayList.<init>(ArrayList.java:136)
at kodo.datacache.QueryCacheImpl.keySet(QueryCacheImpl.java:165)
at
kodo.datacache.AbstractQueryCache.classesChanged(AbstractQueryCache.java:60)
at
kodo.datacache.DataCacheStoreManager.updateCaches(DataCacheStoreManager.java:217)
at
kodo.datacache.DataCacheStoreManager.commit(DataCacheStoreManager.java:73)
at
kodo.runtime.PersistenceManagerImpl.endTransaction(PersistenceManagerImpl.java:1317)
at
kodo.runtime.PersistenceManagerImpl.afterCompletion(PersistenceManagerImpl.java:998)
at kodo.runtime.LocalManagedRuntime.commit(LocalManagedRuntime.java:86)
at
kodo.runtime.PersistenceManagerImpl.commit(PersistenceManagerImpl.java:629)
at
com.stchome.cdr.actions.SearchCriteriaWizardAction.searchQbe(SearchCriteriaWizardAction.java:345)
at sun.reflect.GeneratedMethodAccessor355.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at
org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:280)
at
org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:216)
at
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
at
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
at
com.stchome.cdr.servlet.CdrActionServlet.process(CdrActionServlet.java:31)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at
com.stchome.cdr.servlet.filters.SessionManagerFilter.doFilter(SessionManagerFilter.java:41)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at
org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:300)
at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:374)
at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:743)
at
org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:675)
at org.apache.jk.common.SocketConnection.runIt(ChannelSocket.java:866)
at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
at java.lang.Thread.run(Thread.java:534)
Steve Kim
[email protected]
SolarMetric Inc.
http://www.solarmetric.com -
JRE 1.6 missing/can't find java/util package
I installed Sun's JRE1.6 to mitigate the DST issue a couple
of months ago. In the past few days, my clients report when, trying
access web-services the Java Compiler throws an exception dealing
with the inability to access the java/util package.
One solution (in Japanese) purported to say that if one adds
the switch:
-Djmx.invoke.getters=true
This can help mitigate the issue (after a restart). I did for
a couple of hours but the services began failing again.
### Exception Code ###
coldfusion.jsp.CompilationFailedException: Errors reported by
Java compiler: Found 2 system errors: *** Error: Could not find
package "java/util" in:
/opt/coldfusionmx7/runtime/jre/bin/jre1.6.0/lib/ext/sunjce_provider.jar
[filepath]coldfusionmx7/runtime/jre/bin/jre1.6.0/lib/ext/sunpkcs11.jar
[filepath]coldfusionmx7/runtime/jre/bin/jre1.6.0/lib/ext/dnsns.jar
[filepath]coldfusionmx7/runtime/jre/bin/jre1.6.0/lib/ext/meta-index
[filepath]/coldfusionmx7/runtime/jre/bin/jre1.6.0/lib/ext/localedata.jar
/opt/coldfusionmx7/wwwroot/WEB-INF/classes
[filepath]/coldfusionmx7/wwwroot/WEB-INF/lib/cfmx_bootstrap.jar
/opt/coldfusionmx7/wwwroot/WEB-INF/lib/cfx.jar
[filepath]/coldfusionmx7/wwwroot/WEB-INF/lib/commons-beanutils.jar
[filepath]/coldfusionmx7/wwwroot/WEB-INF/lib/commons-collections.jar
/opt/coldfusionmx7/wwwroot/WEB-INF/lib/js.jar
[filepath]/coldfusionmx7/lib/updates/chf700003.jar
/opt/coldfusionmx7/lib/ant-launcher.jar ....
### EOF ###
SysInfo:
Solaris 2.8
CFMX Ent 7.0.0
Java Version 1.6.0b.105Thx Ian - you're correct. I've incepted 1.4.12 and
web-services are up and running *note to readers: watch your
permissons on the new files - ensure CFSvr "user" has access to new
files.
This technote details how to upgrade the JVM:
http://kb.adobe.com/selfservice/viewContent.do?externalId=2d547983&sliceId=2
Thank you both. DjlR -
Java.utils.prefs.Preferences API throws exception on Mac, not Windows
This is a Mac-specific problem. Is it a bug, or am I misusing the java.utils.prefs.Preferences API?
The Preferences flush() API call always throws a BackingStoreException if a system tree preferences root has been read. The system tree has not been modified or written to, but the flush() call is nevertheless throwing an exception. This occurs when running as a normal user without the ability to write to /Library/Preferences.
See sample code below. Note that I only want to read the system prefs tree. The user tree write flush fails. If the system tree node is not created, the user flush() succeeds.
Steps to Reproduce
Delete any existing Java prefs files:
~/Library/Preferences/com.apple.java.util.prefs.plist
~/Library/Preferences/com.mycompany.prefstest
/Library/Preferences/com.apple.java.util.prefs.plist
/Library/Preferences/com.mycompany.prefstest
Run the following Java code:
package com.mycompany.prefstest;
import java.util.prefs.BackingStoreException;
import java.util.prefs.Preferences;
public class PrefsTest {
* @param args
public static void main(String[] args) {
String strKey1 = "com/mycompany/prefstest/one/two/three/four/key1";
Preferences systemRoot = Preferences.systemRoot();
Preferences userRoot = Preferences.userRoot();
// Get a value for user prefs.
String value1 = userRoot.get(strKey1, "missing");
// Fall back to system prefs if it is not defined.
if (value1.equals("missing"))
value1 = systemRoot.get(strKey1, "missing");
System.out.println("key1 --> " + value1);
// If still not defined, set a user-specific value
if (value1.equals("missing"))
userRoot.put(strKey1, "value1");
try {
userRoot.flush();
System.out.println("flushed prefs successfully");
catch (BackingStoreException e)
System.out.println("Exception: " + e.toString());
Expected Results
Should produce the output:
key --> missing
flushed prefs successfully
Actual Results
Console output is
key --> missing
Exception: java.util.prefs.BackingStoreException: Synchronization failed for node '/'
Notes
$ java -version
java version "1.6.0_29"
Java(TM) SE Runtime Environment (build 1.6.0_29-b11-402-11D50b)
Java HotSpot(TM) 64-Bit Server VM (build 20.4-b02-402, mixed mode)
also tested with:
java version "1.7.0_04-ea"
Java(TM) SE Runtime Environment (build 1.7.0_04-ea-b16)
Java HotSpot(TM) 64-Bit Server VM (build 23.0-b17, mixed mode)
Mac OS X 10.7.3.
The "Expected Results" are correctly obtained running the same code on MS-Windows.
Running the jar as sudo works (with write access to /Library/Preferences), as expected.Just for fun, try a key without slashes in it (but for example dots if you must use such a long key).
I say that because a quick Google search points out that Apple stores the preferences in a file hierarchy in the user home folder. I can already see how using keys which look like a file path are going to cause nuclear reactors to meltdown... -
Java.sql.Date and java.util.Date - class loaded first in the classpath
I had two jar files which has java.util.Date and java.sql.Date class file. i want to know whether which class is loaded first in the classpath...
I like to change the order of loading the class at runtime...
Is there is any way to change the order of loading of class...
I may have different version of jar files for example xerces,xercesImpl. some of the code uses xerces ,some of the code uses xercesImpl..i had common classes.
I like to load the class with the same name according to the order i need..
Can we do all these in Run time ?????I had two jar files which has java.util.Date and
java.sql.Date class file. i want to know whether
which class is loaded first in the classpath...
I like to change the order of loading the class at
runtime...
Is there is any way to change the order of loading of
class...
I may have different version of jar files for example
xerces,xercesImpl. some of the code uses xerces ,some
of the code uses xercesImpl..i had common classes.
I like to load the class with the same name according
to the order i need..
Can we do all these in Run time ?????That is meaningless.
The classes you are referring to are part of the Java API. Third party jars have no impact on that. And you can't change to the order because java.sql.Data is derived from java.util.Date. So the second must load before the first.
And if you have two jar files with those classes in them (and not classes that use them) then you either should already know how to use them or you should stop trying to do whatever you are doing because it isn't going to work. -
Java's Runtime.exec() method
When you shell out to java's Runtime.exec() method, are the process name and arguments the same for the child process that is spawned.
We see duplicated processes about the time when our logs tell us this command was run. However, we cannot seem to reproduce this. Has anyone else seen anyone this before?That's what I though too. But check this out . . .
Our code looks as follows:
private Runtime rt;
private Process p;
rt = Rutime.getRuntime();
p = rt.exec(command);
This exec() call creates a new process, which is a child of the java process that runs this command. The final process looks like the "command" string that is passed to the exec() method call. In our case, the command is a call to the /usr/bin/mail utility to send out faxes and emails.
We ran a very tight loop executing the rt.exec() call over and over. What we found was that for a minor fraction of a second, the newly created process looks just like the original process including the same arguments. However, the PID's indicated that one process was the child of the other. This is why it looked like we had 2 of the same processes. WILD!
Thanks guys!
Maybe you are looking for
-
How to reformat Ipod Nano 5th gen when not recognized by Windows or iTunes?
I've done all the steps on the site to correct this problem up until the reformatiing part except I tried to update the driver software but Windows says that it encounters an error when trying to install the new software. So after going through the s
-
How do I add a phone number so I can use either my US or Canadian number (depending on where I am) with iMessage and Facetime on both my iPhones?
-
How can I downgrade 10.7 to 10.6 without an optical drive?
I got a mac mini with Lion on it. It's not compatible with certain software I have to have on it. I need to downgrade it to 10.6 but it has no optical drive. When I use an external drive, I can't boot from the disc. I've made a .dmg of the file on a
-
Convert 132 to 255 in Line width in EMail PDF attchment in smartforms
Hai Experts Send smart form output to EMail as a PDF attachment, in that program, Conver_otf gives BIN file, why it can be covert 132 to 255 send output to EMail as a PDF attachment. thanks sitaram
-
Hi, I have an account purchased 20 licenses, I have a question is how to track this license, I don't know which machine have installed this license. Is there have some license server or some software can control all the license which I have used? Th