GithubHelp home page GithubHelp logo

frankframework / frankframework Goto Github PK

View Code? Open in Web Editor NEW
111.0 7.0 76.0 100.3 MB

The Frank!Framework is an easy-to-use, stateless integration framework which allows (transactional) messages to be modified and exchanged between different systems.

Home Page: https://frankframework.org

License: Apache License 2.0

Java 90.82% XSLT 1.81% CSS 1.38% JavaScript 0.25% HTML 2.18% TSQL 0.02% Dockerfile 0.05% Shell 0.02% Rich Text Format 0.38% XQuery 0.01% Python 0.01% PLSQL 0.02% SCSS 0.05% TypeScript 2.99%
java xml-configuration system-integration open-source community-driven framework data-flow integration integration-framework integration-platform

frankframework's Introduction

Frank!Framework

Exchange, modify and aggregate messages between systems!

frank-framework-github-banner

License Core Tests Pull Requests codecov Codacy Badge CodeFactor total GitHub contributors Maven Central Latest Snapshot Public Vulnerabilities

Open-Source, Low-Code & Stateless

The Frank!Framework is a framework that is completely configurable through XML configurations. Each Frank!Application may contain multiple configurations, and each configuration can consist of multiple end-to-end connections which we call 'adapters'. Configurations may be (re)loaded conditionally or individiually for optimal performance and customizability. The application may be managed and monitored through a web interface or REST API. See it in action: https://frank2example.frankframework.org

Running the Frank-Framework

The Frank!Framework can run on any java runtime, so you have your choice of application server. In our CI we test every PR and Release against Tomcat, Wildfly and JBoss, all these application servers may be used in production environments. You may create containers to run the framework using the beforementioned application servers. Please note that they are for development use only, more info about using and creating them can be found in Docker.md.

All production-ready containers will be pushed to our Nexus Repository Manager frankframework-docker repository. Helm charts are available in the charts repository.

Rebranding

The Ibis Adapter Framework has been renamed to "Frank!Framework". The migration is a work in progress, which is why you may encounter some old(er) names throughout our source code. Don't worry, everything will remain fully backwards compatible!

Releases

All our releases can be found on Maven central. Individual builds can be found on our Nexus repository here. For more information about our releases (such as improvements, non-backwards compatibility changes and security fixes), see the release notes of your version here.

Security

It is important to remember that the security of your Frank!Application is the result of the overall security of the hosting stack; the Java runtime, Application Server, Frank!Framework and your configuration.

It is our responsibility that there are no vulnerabilities in the Frank!Framework itself and all it's Java dependencies. In turn it is your responsibility to keep your Frank!Framework version up to date and ensure there are no vulnerabilities in your configuration. More information about reporting vulnerabilities, supported versions and how we deal with CVE's can be found in our Security Policy.

Feedback

For bug reports and feature requests, create a new issue at https://github.com/frankframework/frankframework/issues. For general questions feel free to post them on our discussions forum here on GitHub. If you would like to report a vulnerability, or have security concerns regarding the Frank!Framework, please email [email protected] and include the word "SECURITY" in the subject line.

Frank!Manual

In need of help? Our manual can be found at http://frank-manual.readthedocs.io. If you cannot find an answer to your question feel free to submit a question in discussions. If you want to contribute to our manual, the sources can be found here.

Contributing

Eager to help us expand or enhance our framework? Please read our Code of Conduct before Contributing.

frankframework's People

Contributors

alisihab avatar bibi0803 avatar ccamiletti avatar celmoussaoui avatar dansebmey avatar dependabot[bot] avatar githubapreinders avatar gvanbrakel avatar jacodg avatar jhuibers avatar jjansenvr avatar jkosternl avatar laurens-makel avatar leeuw73 avatar leroyjenkinss avatar matthbo avatar matthijssmets avatar mhdirkse avatar mihxil avatar mkmeral avatar nielsm5 avatar onstwedder avatar philipsens avatar ricardovh avatar robertkarajev avatar sinasen2000 avatar tnleeuw avatar vbpham avatar woutervdschoot avatar yale96 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

frankframework's Issues

Nested stacktrace ends at ForEachChildElementPipe

Describe the bug
Nested stacktrace ends at ForEachChildElementPipe

Category

  • Frank Framework

To Reproduce
Will create unit test

Expected behavior
it should continue to nest further up to the original exception

Screenshots
If applicable, add screenshots to help explain your problem.

Environment:

  • 7.5 RC1,
  • Ibis4Oma

Additional context
Add any other context about the problem here. (f.e. ladybug report / test adapter with larva test)
stacktr.txt
Pipeline ExstreamComposeMessageAdapterThrowsNullPointer.zip

Confirmation prompt when deleting schedules (GUI 3.0)

Is your feature request related to a problem? Please describe.
Accidentally pressing 'Delete' on a schedule irreversibly erases that schedule without warning.

Describe the solution you'd like
When pressing delete, a pop-up window where the user can confirm their intention to delete.

Describe alternatives you've considered
N/A

Additional context
N/A

Security roles not showing new GUI

Describe the bug
The security role bindings are not showing in the new console

Category

  • Frank Console

To Reproduce
Steps to reproduce the behavior:

  1. new GUI either on Ibis4Example or ibis4sollife
  2. Click on security items
  3. on the tot the block with role binding is missing

Expected behavior
The role binding is shown in the "old GUI"

Screenshots
If applicable, add screenshots to help explain your problem.

Environment:

  • Browser Chrome
  • IAF Version 7.5-20200114.174420: ibis4solife and 7.6 snapshot

Additional context
rolebinding

Test Pipeline doesn't handle diacritics

Describe the bug
When inputting a message that contains diacritics using Test Pipeline, the diacritics are replaced by �

Category

  • Frank Console

To Reproduce
Steps to reproduce the behavior:

  1. Go to 'Test Pipeline'
  2. Select an adapter
  3. Enter a message containing diacritics
  4. See the message in the ladybug, this now contains �
  5. Call the adapter directly using external tools with the same message
  6. See the mesage in the ladybug, this now contains the diacritics

Expected behavior
Test Pipeline does handle diacritics correctly

Screenshots
N/A

Environment:

  • Application server (f.e. Tomcat/websphere/JBOSS/Jetty): Confirmed on Websphere and Tomcat
  • Browser [e.g. chrome, safari]: Chrome
  • IAF Version [e.g. 7.4]: 7.5-RC1

Additional context
N/A

Fix junit tests

Junit test I once made to test WSDL-generation have mostly been broken now. They should be fixed again.

HTTP RestListener does not handle Content-Type correctly

Describe the bug
The HTTP RestListener does not handle the HTTP Content-Type Header correctly. On the request-side it is not set in the contentType SessionKey, and on the output side it is not (correctly) set, resulting in character set errors.

Category

  • Frank Framework

To Reproduce
Steps to reproduce the behavior:

  1. Load the attached ConfigurationRESTTest (rename file to .xml)
  2. Use SOAPUI or similar to send a message to this adapter (SOAPUI automatically sets the Content-Header to text/xml;charset=UTF-8
  3. Open the message in Ladybug
  4. SessionKey contentType is empty
  5. SOAPUI does not parse response correctly in XML view
  6. Content-Type header is not returned to SOAPUI

Expected behavior
The contentType SessionKey and Content-Type HTTP header of the response to be set

Screenshots
N/A

Environment:

  • Application server (f.e. Tomcat/websphere/JBOSS/Jetty): Tomcat, Websphere
  • Browser [e.g. chrome, safari]: N/A
  • IAF Version [e.g. 7.4]: 7.5-RC1

Additional context
Pipeline RESTTest.zip
ConfigurationRESTTest.txt
Example input: äbcdéfghîjklmnòpqrstuvwxyz

"Cannot start new transaction" when using multiple threads, receiver not transacted

Describe the bug
Ik ben voor Ibis4SapHCM bezig met aanpassingen aan hoe de Ibis naar een DB schrijft en er weer uit leest om de performance te verbeteren (of in ieder geval met meer threads tegelijk zijn werk kan doen). Nu loop ik er tegenaan dat ik van de database de melding krijg dat het starten van een nieuwe transactie niet mogelijk is. Als ik op internet zoek naar de foutmelding, zou de oorzaak zijn dat de sessie al bezig is met een transactie.

Wordt er vanuit de Ibis een database sessie gedeeld tussen de verschillende pipes/listeners/senders en kan ik dat gedrag overschrijven binnen de Ibis, of zit dat ergens anders?

Category

  • Frank Framework

To Reproduce
Steps to reproduce the behavior:

  1. Go to '...'

  2. Click on '....'

  3. Scroll down to '....'

  4. See error

Expected behavior
A clear and concise description of what you expected to happen.

Screenshots
If applicable, add screenshots to help explain your problem.

Environment:

  • Application server (f.e. Tomcat/websphere/JBOSS/Jetty)
  • Browser [e.g. chrome, safari]
  • IAF Version 7.5 RC1

Additional context
Add any other context about the problem here. (f.e. ladybug report / test adapter with larva test)
Stacktrace.txt

Browse Tables java.lang.stackoverflowerror

Describe the bug
The browse database tables option gives a technical error

Category

  • Frank Console

To Reproduce
Steps to reproduce the behavior:

  1. Go to JDBC
  2. Click on Browse Tables
  3. Select realm JDBC
  4. TableName ibisconfig
  5. SEND button
  6. see error on top of page

Expected behavior
showing the database table of ibisconfig

Screenshots
error browse tables Frank Console PNG

Environment:

  • Browse chrome
  • IAF Version 7.5.xxxxxx

Additional context

Ignore warning property on adapters?

Is it possible to get rid of warnings that are not correct for the specific situation?

Solutions could be to add a property in the configuration of a pipe so the warning will be ignored?

Inconsequent use of Configuration(s) in menu, breadcrum and tabs

Describe the bug

Sometimes GUI 3.0 is using Configuration and sometimes Configurations.

The menu shows:

Configuration
Show Configuration
Manage Configurations

The breadcrum shows:

Configurations > Show (also add Configurations here? Breadcrum should reflect menu items?)
Configurations > Manage (also add Configurations here? Breadcrum should reflect menu items?)

At the top of the body page (below the tabs) you see:

Configuration (also add Show here?)
Manage Configurations

Category

  • Frank Console

To Reproduce
Steps to reproduce the behavior:

  1. Run any recent framework version. For example clone and start Frank!Runner.

Expected behavior

Menu:

Configurations
Show Configuratios
Manage Configurations

Breadcrum:

Configurations > Show Configurations
Configurations > Manage Configurations

At the top of the body page (below the tabs):

Show Configurations or remove this line as it is already in the breadcrum. Hmm, I see other pages have this too but the names are not 1 on 1 the same as in the menu. For example "Test Pipeline" vs "Test > PipeLine" vs "Test a Pipeline". Would be better to sync menu breadcrum and page title.
Manage Configurations

Screenshots

image

Environment:

  • Application server: all
  • Browser: all
  • IAF Version: I think already a lot of old version but at least 7.5-20200214.142106

Additional context
None

Duplicate exit for pipe does not throw expected error

Describe the bug
Duplicate exit in pipeline is not throwing an error

Category

  • Frank Framework

To Reproduce
Steps to reproduce the behavior:
user two exiths with same path to a pipe f.e.

Expected behavior
Design Time
Validation error should occur when using the configuration validation xsd
run time
A warning in the console duplicate exit in pipe "" pipename

Screenshots
n/a

Environment:
design time an dlocal

IAF Version [e.g. 7.4] unknown

Additional context
Add any other context about the problem here. (f.e. ladybug report / test adapter with larva test)

Enable FileSystemActor to remove non-empty directory

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

Describe the solution you'd like
A clear and concise description of what you want to happen.

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context or screenshots about the feature request here.

Merge new IAF generation.

Add the ability to generate a new IAF from main branch.
Currently a new IAF is generated by a build script based on a default template
By merging the template and incorporating runtime components a new IAF can be generated by cloning the IAF project.

White screen execute jdbc query when query ends with newline

For example execute select count(*) from ibisstore at page execute jdbc query. Runs fine without newlines but when an extra newline is added after ibisstore a white page is shown. Tested with IAF 5.0-a26 on WebSphere Application Server/7.0

Warning on wrong combination of transaction and messageProtocol

When an EsbJmsSender with messageProtocol="RR" is used it should not be executed in an transaction. Hence transactionAttribute="NotSupported" should be added to GenericMessageSendingPipe or Receiver/Pipeline should not run in a transaction. I might even be valid to raise an error or throw an exception.

When messageProtocol="FF" and not running in an transaction a warning should also be given.

messageslog rotates on daily bases instead of size causing FS problems

Describe the bug
The messages log mainly used for the splunk dashboards rotates at a daily bases, on batch and heavy load processes this will cause full Files systems

Category

  • Frank Framework

To Reproduce

Expected behavior
Rotation of messagelog based on filesize will protect the file system from getting full

Screenshots

Environment:

  • Application server Websphere 8.5 expect same behavour on other app servers
  • IAF Version [e.g. 7.5.2020*******]

Additional context

message log is logging input message on loglevel "Terse" should be moved to "Basic"

Describe the bug
The messages.log is needed for integrity check in production environments. By logging the input message in the "Terse" loglevel the logfiles will become to big.

by moving the logging of the input to the "Basic" loglevel this problem will be solved

To Reproduce
Steps to reproduce the behavior:

  1. Go to a running ibis with a framwork 7.4+
  2. Click on the log button
  3. Scroll down to messages.log
  4. Open and see the input message being logged

Expected behavior
The logging of the input should be logged only using the "Basic" loglevel

blob verwerking in ms sql is traag

Describe the bug
In de ibis4scan worden er xml rechtstreeks uit de zip verwerkt met een zipiteratorpipe. de xml'en worden dan geinsert in de filestore tabel. Dit gebeurt dan door eeste de "metadata" van de zip te inserten en vervolgens die rij te updaten met de daadwerkelijke blob met een select for update query.

Wat te zien is in de log, door te zoeken op "updateData" is dat er een temp file wordt gemaakt en dat duur erg lang:

2020-03-05 10:41:35,646 DEBUG [WCTestPipeLine[WebContainer : 10][pool-65-thread-1]] cid [0ace39ab-2e068dd7_1706216427a_-7825] cid [testmessage0ace39ab-2e068dd7_1706216427a_-7824] util.FileUtils - creating tempfile prefix [blob] suffix [.bin] directory [E:/data/WAS/wasap01/tmp]

[gat van 10s]

2020-03-05 10:41:45,349 DEBUG [WCTestPipeLine[WebContainer : 10][pool-65-thread-1]] cid [0ace39ab-2e068dd7_1706216427a_-7825] cid [testmessage0ace39ab-2e068dd7_1706216427a_-7824] processors.MonitoringPipeProcessor - Pipeline of adapter [HandleIndexedDocumentsIn_ProcessFile] messageId [testmessage0ace39ab-2e068dd7_1706216427a_-7824] is about to call pipe [storeIntegrityData] current result [

Category

  • Frank Framework
  • Performance

To Reproduce

Lokaal is het niet te reproduceren, daar gaat het snel. Graag contact met mij opnemen om het op de test omgeving te reproduceren mocht dat nodig zijn.

Expected behavior
snelle update met de blob

Screenshots
na

Environment:
tap

Additional context
hele ibis4scanlog updatedata.txt
stukje uit de ibis4scan log updatedata duurt lang.txt

including a (lookup) document in xslt not found (Database Classloader)

Describe the bug
in an xslt
<xsl:variable name="propertyDefinitions" select="document('../../Migration/migrationDomains.xml')" />

Will lead to -->
Pipe [Transform the request] msgId [ID:123] Exception on transforming input: [nl.nn.adapterframework.senders.XsltSender] [Transform the request] Exception on transforming input: (XPathException) SystemId [bytesclassloader:Main/Documents/xsl/TransformRequest.xsl] line [4]: Exception thrown by URIResolver: (TransformerException) Cannot get resource for href '../../Migration/migrationDomains.xml' with base 'bytesclassloader:Main/Documents/xsl/TransformRequest.xsl'

To Reproduce
ask for input

Expected behavior
the document link is resolved from config or ear project

Additional context
Add any other context about the problem here.

Missing element in WSDL

If there is a missing element in the provided wsdl, the rpcrouters wsdl will tell you that you are missing an element, but no errors will return from testtool and there will be no validation. It is weird that this doesnt give an extra warning or error.

Example webapp

An example webapp that can easily be run without having too much too knowledge of ibis would be welcome.

ConfigurationServlet doesn't work on Tomcat

  • Stop all adapters
  • Call ConfigurationServlet
  • Return to console main page which will show: (AssertionError) java.beans.IntrospectionException: (IntrospectionException) type mismatch between indexed and non-indexed methods: connection

This doesn't happen on WebSphere.

When giving empty value in param it is ignored and complete pipe input xml is returned

   if (StringUtils.isNotEmpty(getSessionKey())) {
          result=prc.getSession().get(getSessionKey());
   } else if (StringUtils.isNotEmpty(getPattern())) {
          result=format(alreadyResolvedParameters, prc);                                                  
   } else if (StringUtils.isNotEmpty(getValue())) {
          result = getValue();
   } else {
          result=prc.getInput();
   }

so if value="" empty value should be passed instead of prc input

API json endpoint of statistics uses formatted strings for numbers

Describe the bug
When retrieving statistics from /iaf/api/adapters/%adapter%/statistics, numbers in statistics are returned as formatted strings, like "2,560", where the comma is a thousands separator. This makes calculations go wrong.

Category

  • Frank Framework

To Reproduce
Steps to reproduce the behavior:
Run ibis4pt / ibis4pta

Expected behavior
Numbers should be returned as unquoted, without thousands separator

Screenshots
If applicable, add screenshots to help explain your problem.

Environment:

  • IAF Version: all known up to 7.6

Additional context
Add any other context about the problem here. (f.e. ladybug report / test adapter with larva test)

Make minimize and maximize menu more intuitive

Is your feature request related to a problem? Please describe.
The hamburger menu icon suggest a dropdown menu. The user will not know it is possible to minimize the menu until he or she is curious to know what the hamburger menu icon will show.

Describe the solution you'd like
I think a small arrow on the right side of the F!F logo (near the edge of the menu) would be a lot more intuitive. Maybe the arrow should vertically not be aligned with the logo but be at the top of the page.

Describe alternatives you've considered

Additional context

image

ibisdoc.xsd flags <XmlValidatorPipe> element and jmsRealm attribute as errors, but the config works

I have a Frank config with the following XML:

<Module
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:noNamespaceSchemaLocation="./ibisdoc.xsd">
  <Adapter name="IngestBooking">
    <Receiver name="input">
      <ApiListener
          name="inputListener"
          uriPattern="booking"
          method="POST"/>
    </Receiver>
    <Pipeline firstPipe="checkInput"
        transactionAttribute="RequiresNew" >
      <Exit path="Exit" state="success" code="201" />
      <Exit path="ServerError" state="failure" code="500" />
      <XmlValidatorPipe
          name="checkInput"
          root="booking"
          schema="booking.xsd">
        <Forward name="success" path="insertBooking" />
        <Forward name="failure" path="makeInvalidBookingError" />
      </XmlValidatorPipe>
      <FixedResultPipe
          name="makeInvalidBookingError"
          returnString="Input booking does not satisfy booking.xsd">
        <Forward name="success" path="ServerError"/>
      </FixedResultPipe>
      <SenderPipe
          name="insertBooking">
        <FixedQuerySender
            name="insertBookingSender"
            query="INSERT INTO booking VALUES(?, ?, ?, ?)"
            jmsRealm="jdbc">
          <Param name="id" xpathExpression="/booking/@id" />
          <Param name="travelerId" xpathExpression="/booking/travelerId" />
          <Param name="price" xpathExpression="/booking/price" />
          <Param name="fee" xpathExpression="/booking/fee" />
        </FixedQuerySender>
        <Forward name="success" path="getDestinations" />
        <Forward name="failure" path="ServerError" />
      </SenderPipe>
      <XsltPipe
          name="getDestinations"
          styleSheetName="booking2destinations.xsl"
          getInputFromSessionKey="originalMessage">
        <Forward name="success" path="iterateDestinations"/>
        <Forward name="failure" path="ServerError"/>
      </XsltPipe>
      <ForEachChildElementPipe
          name="iterateDestinations"
          elementXPathExpression="/destinations/destination">
        <FixedQuerySender
            name="insertVisitSender"
            query="INSERT INTO visit VALUES(?, ?, ?, ?, ?, ?, ?)"
            jmsRealm="jdbc">
          <Param name="bookingId" xpathExpression="/destination/bookingId" />
          <Param name="seq" xpathExpression="/destination/seq" />
          <Param name="hostId" xpathExpression="/destination/hostId" />
          <Param name="productId" xpathExpression="/destination/productId" />
          <Param name="startDate" xpathExpression="/destination/startDate" />
          <Param name="endDate" xpathExpression="/destination/endDate" />
          <Param name="price" xpathExpression="/destination/price" />
        </FixedQuerySender>
        <Forward name="success" path="Exit"/>
        <Forward name="failure" path="ServerError"/>
      </ForEachChildElementPipe>
    </Pipeline>
  </Adapter>
</Module>

When I view this adapter in Visual Studio Code with XML schema checking, then there are two errors. First, a red line is shown under the XmlValidatorPipe. Second, red lines are shown below the two jmsRealm attributes. These are not errors because the Frank config works.

The red line below XmlValidatorPipe vanishes if the tags are moved to the end of the pipeline.

Category
Frank Framework

To Reproduce
Copy/paste the mentioned XML into Visual Studio Code or Eclipse. Configure the chosen text editor to validate against the XSD. Get ibisdoc.xsd from Frank!Framework version 7.5-RC1.

Expected behavior
There are no XSD violations.

Environment:

  • Application server: n/a
  • Browser: n/a
  • IAF Version: 7.5-RC1

WsdlXmlValidator javax.xml.stream.XMLStreamException: Prefix cannot be null

When using a WsdlXmlValidator with a WSDL which contains a schema using the default namespace xmlns="http://www.w3.org/2001/XMLSchema" the following exception is thrown at startup:

javax.xml.stream.XMLStreamException: Prefix cannot be null
at com.sun.xml.internal.stream.writers.XMLStreamWriterImpl.writeStartElement(Unknown Source)
at com.sun.xml.internal.stream.writers.XMLStreamWriterImpl.writeStartElement(Unknown Source)
at javanet.staxutils.helpers.StreamWriterDelegate.writeStartElement(StreamWriterDelegate.java:115)
at javanet.staxutils.io.XMLWriterUtils.writeStartElement(XMLWriterUtils.java:1254)
at javanet.staxutils.XMLStreamEventWriter.sendEvent(XMLStreamEventWriter.java:121)
at javanet.staxutils.BaseXMLEventWriter.add(BaseXMLEventWriter.java:519)
at nl.nn.adapterframework.validation.SchemaUtils.xsdToXmlStreamWriter(SchemaUtils.java:438)
at nl.nn.adapterframework.validation.SchemaUtils.mergeXsdsGroupedByNamespaceToSchemasWithoutIncludes(SchemaUtils.java:195)
at nl.nn.adapterframework.pipes.WsdlXmlValidator.getXsds(WsdlXmlValidator.java:254)
at nl.nn.adapterframework.validation.XercesXmlValidator.init(XercesXmlValidator.java:114)
at nl.nn.adapterframework.validation.AbstractXmlValidator.configure(AbstractXmlValidator.java:107)
at nl.nn.adapterframework.pipes.XmlValidator.configure(XmlValidator.java:183)
at nl.nn.adapterframework.soap.SoapValidator.configure(SoapValidator.java:47)
at nl.nn.adapterframework.pipes.AbstractPipe.configure(AbstractPipe.java:204)
at nl.nn.adapterframework.core.PipeLine.configure(PipeLine.java:352)
at nl.nn.adapterframework.core.Adapter.configure(Adapter.java:161)
at nl.nn.adapterframework.configuration.BasicAdapterServiceImpl.registerAdapter(BasicAdapterServiceImpl.java:55)
at nl.nn.adapterframework.configuration.Configuration.registerAdapter(Configuration.java:189)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.commons.beanutils.MethodUtils.invokeMethod(MethodUtils.java:216)
at org.apache.commons.digester.SetNextRule.end(SetNextRule.java:217)
at org.apache.commons.digester.Rule.end(Rule.java:253)
at org.apache.commons.digester.Digester.endElement(Digester.java:1222)
at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
at org.apache.commons.digester.Digester.parse(Digester.java:1785)
at nl.nn.adapterframework.configuration.ConfigurationDigester.digestConfiguration(ConfigurationDigester.java:239)
at nl.nn.adapterframework.configuration.ConfigurationDigester.unmarshalConfiguration(ConfigurationDigester.java:304)
at nl.nn.adapterframework.unmanaged.DefaultIbisManager.loadConfigurationFile(DefaultIbisManager.java:76)
at nl.nn.adapterframework.configuration.IbisContext.initConfig(IbisContext.java:76)
at nl.nn.adapterframework.webcontrol.ConfigurationServlet.loadConfig(ConfigurationServlet.java:196)
at nl.nn.adapterframework.webcontrol.ConfigurationServlet.init(ConfigurationServlet.java:130)
at javax.servlet.GenericServlet.init(GenericServlet.java:160)
at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1228)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1147)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1043)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4957)
at org.apache.catalina.core.StandardContext$3.call(StandardContext.java:5284)
at org.apache.catalina.core.StandardContext$3.call(StandardContext.java:5279)
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)

WsdlXmlValidator soapBody does not handle newlines in configuration

Describe the bug
When using the WsdlXmlValidator soapBody attribute, it accepts a comma separated list for multiple elements. When adding a newline in this attribute (for readability), the first element on the newline is read as \r\n{elementname} instead of {elementname}.

This error might also happens when using other comma separated lists (not verified).

Category

  • Frank Framework

To Reproduce
Steps to reproduce the behavior:

  1. Create a pipeline with a WsdlXmlValidator and have a soapBody attirbute that spans multiple lines
  2. Send a message with the first element of the new line
  3. Validation fails, noting that {elementname} is not in the list of allowed names

Expected behavior
Whitespaces and similar are ignored when determining the allowed names

Screenshots
N/A

Environment:

  • Application server (f.e. Tomcat/websphere/JBOSS/Jetty): Websphere
  • Browser [e.g. chrome, safari]: N/A
  • IAF Version [e.g. 7.4]: 7.5-20200115.110722

Additional context
Ladybug report will be send by e-mail.

Empty JDBC result throws NullPointerException

Describe the bug
A clear and concise description of what the bug is.

Category

  • Frank Framework

To Reproduce
Steps to reproduce the behavior:

  1. Go to '...'
  2. Click on '....'
  3. Scroll down to '....'
  4. See error

Expected behavior
A clear and concise description of what you expected to happen.

Screenshots
If applicable, add screenshots to help explain your problem.

Environment:

  • IAF Version 7.5 RC1

Additional context
Add any other context about the problem here. (f.e. ladybug report / test adapter with larva test) 7.5-20200211.154830
Pipeline ExstreamComposeMessageAdapterThrowsNullPointer.zip

There is also working scenario available. IAF version: 7.5-20200120.144452
Pipeline ExstreamComposeMessageAdapterWorking.zip

Configuration_Notify_Intermediary.txt

-- This report is from another adapter.the same problem IAF version 7.5-20200211.154830
Pipeline ProcessedMessageAdapter (2).zip

Improvement suggestions on Manage configurations

I would like to suggest 4 improvements for under Manage configurations in new GUI:.

  1. Upload config screen: In the “Name” field, values of existing configs should be pre-populated. Many a times , while uploading config, user is not considering case-sensitiveness of the field which results in success message and no desired result. If we pre-populate this field as list of values, user can just select correct config and upload.

  2. Upload config screen: It would be really helpful if we can put artifactory URL of JAR to be uploaded rather than current flow of downloading JAR from artifactory and uploading it again in IBIS. I know we are also planning of CD implementation. Bu till then this feature would help, especially TCT/SM folks who are uploading in ACC/PROD.

  3. Upload config screen: Selecting datasource or realm to JDBC can be avoided. I think this is already fixed in v7.5-RC1.

  4. Manage configurations -> version history : I think we have discussed this before and version numbers need to be sorted in ascending order

Adapter statistics by the hour are not reset every hour

Describe the bug
On the showAdapterStatistics window the counts in "Adapter statistics by the hour" are not reset every hour, but summarized with the hours from previous days.

Category

  • Frank Console

To Reproduce
Steps to reproduce the behavior:

  1. Go to the statistics of an adapter, example:

  2. See "Adapter statistics by the hour". The sum of all hours is the same as the total number in "Messages processed".

Expected behavior
A count per hour should start by 0 every hour and count the messages per hour.
The number of messages for that hour of all previous days since startup is meaningless.

Screenshots
If applicable, add screenshots to help explain your problem.

Environment:

  • Application server : websphere
  • Browser : chrome
  • IAF Version : 7.5-20191216.163321

Additional context

WebServiceListeners are not registering on the correct SpringBus

Describe the bug
The SpringBus is created in a different classloader as where the ibis is ran from.
WebServiceListeners are being started from a different classloader therefor cannot find the correct SpringBus.

Category

  • Frank Framework

To Reproduce
Start ibis with webservicelistener

Expected behavior
See the webservicelistener on the /services/ page

Screenshots

Environment:
Only on WebSphere with multiple ClassLoaders (thus not a single_classloader)

Additional context

MoveFilePipe NullPointerException

Describe the bug
MoveFilePipe throws NullPointerException.
I use two different adapters which have the almost same MoveFilePipe configured.
MoveFilePipe in the first adapter(FxfReceiver) works without problems.
It has a sessionKey restOfthePath set for move2fileSessionKey. This sessionkey is stored in the message store and used in the following pipe(IDV_Publishing_Builder) to set move2fileSessionKey attribute. In IDV_Publishing_Builder MoveFilePipe throws NullPointerException.

Category

  • Frank Framework

To Reproduce
Steps to reproduce the behavior:

  1. Go to '...'
  2. Click on '....'
  3. Scroll down to '....'
  4. See error

Expected behavior
MoveFilePipe should just work.

Environment:
-7.5-20200211.154830

Additional context
Add any other context about the problem here. (f.e. ladybug report / test adapter with larva test)
st.txt

rest of the files has been sent by email

Frankconsole error freakout

Describe the bug
When the FrankConsole gets an error in the url (/gui/#** !/error) it starts refreshing and never stops. I checked out some older versions and it seems to happen since using ! in the url (/gui/# !**/error). Before the url was /gui/#/ now the url is /gui/#!/. When error is enterd in the old state (/gui/#/error) it is redirected to status (/gui/#/status).

Category

  • Frank Console

To Reproduce
Steps to reproduce the behavior:

  1. Go to 'https://ibis4example.ibissource.org/iaf/gui/#!/error'
  2. See error

Expected behavior
Give error message, redirect to /status like the old version or enough time to react/click on something.

Environment:

  • IAF Version [e.g. 7.5] between 20191216.144535 and 20200103.164904 was the ! added in the url

Center the minimized Frank!Framework logo

Is your feature request related to a problem? Please describe.
The yellow ! when the menu is minimized isn't centered (I'm using Firefox):

image

Describe the solution you'd like
Please center it like:

image

Describe alternatives you've considered

Additional context

Apparent lack of security on Scheduler

Describe the bug
I can create, edit and delete schedules through the console even if I don't have any rights for that Ibis/Frank. Not necessarily a bug, more likely an oversight?

Category

  • Frank Console

To Reproduce
Steps to reproduce the behavior:

  1. Go to 'Scheduler' on the console of an Ibis where you lack rights
  2. See buttons 'Add new schedule', and on individual jobs 'Edit', 'Delete' etc.

Expected behavior
I would expect not to see any of the aforementioned buttons.

Screenshots
N/A

Environment:

  • Websphere 8.5
  • Firefox
  • IAF/F!F 7.5-20200211.123429

Additional context
N/A

Named query parameters do not work inside ForEachChildElementPipe

Kay discovered a case where named query parameters do not work. The following insert statement fails: "INSERT INTO visit VALUES(?{bookingId}, ?{seq}, ?{hostId}, ?{productId}, ?{startDate}, ?{endDate}, ?{price})" with a syntax error while the following insert statement succeeds: "INSERT INTO visit VALUES(?, ?, ?, ?, ?, ?, ?)".

Category

  • Frank Framework

To Reproduce
Steps to reproduce the behavior:

  1. Clone the Frank!Manual GitHub repository.
  2. Clone Frank!Runner.
  3. Open the build.xml file within the Frank!Runner.
  4. Edit property ff.version to be 7.5-RC1
  5. Edit build.properties. It should have the line "project.dir=frank-manual/src/gettingStarted" if your frank-manual and frank-runner checkouts have the same root directory.
  6. In the Frank!Manual repository, checkout SHA 75113d0d0eb10172e6ecabb6d4430f4952c2b5ba.
  7. Find and open file ConfigurationIngestBooking.xml. The query under discussion is at line 53. Replace it by the query mentioned earlier that has named parameters.
  8. Start the Frank!Runner.
  9. In the Test Pipeline screen, run the IngestBooking adapter and provide the following XML:
2 500.00 100.00 400.00 2018-12-27 2019-01-02

Expected behavior
The adapter succeeds.

Screenshots
The adapter fails with the following exception:

nl.nn.adapterframework.core.ListenerException: Pipe [iterateDestinations] msgId [testmessage0a000096--143075e0_170622c4153_-7ffe] caught exception: Could not process list of elements using xpath [/destinations/destination]: (RuntimeException) nl.nn.adapterframework.xml.SaxException: [nl.nn.adapterframework.jdbc.FixedQuerySender] [insertVisitSender] cannot getQueryExecutionContext: (JdbcSQLSyntaxErrorException) SQLState [42000], errorCode [42000]: Syntax error in SQL statement "INSERT INTO visit VALUES(?{bookingId}, ?{seq}, ?{hostId}, ?{productId}, ?{startDate}, ?{endDate}, ?{price})[*]" [42000-200]
at nl.nn.adapterframework.core.Adapter.processMessageWithExceptions(Adapter.java:677)&#xD;

at nl.nn.adapterframework.core.Adapter.processMessage(Adapter.java:557)&#xD;

at nl.nn.adapterframework.webcontrol.api.TestPipeline.processMessage(TestPipeline.java:211)&#xD;

at nl.nn.adapterframework.webcontrol.api.TestPipeline.postTestPipeLine(TestPipeline.java:139)&#xD;

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)&#xD;

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)&#xD;

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)&#xD;

at java.lang.reflect.Method.invoke(Method.java:498)&#xD;

at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:137)&#xD;

at org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTarget(ResourceMethodInvoker.java:296)&#xD;

at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:250)&#xD;

at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:237)&#xD;

at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:377)&#xD;

at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:200)&#xD;

at org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:220)&#xD;

at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:56)&#xD;

at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:51)&#xD;

at nl.nn.adapterframework.webcontrol.api.ServletDispatcher.service(ServletDispatcher.java:150)&#xD;

at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)&#xD;

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)&#xD;

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)&#xD;

at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)&#xD;

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)&#xD;

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)&#xD;

at nl.nn.adapterframework.webcontrol.LoginFilter.doFilter(LoginFilter.java:226)&#xD;

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)&#xD;

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)&#xD;

at nl.nn.adapterframework.http.CacheControlFilter.doFilter(CacheControlFilter.java:55)&#xD;

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)&#xD;

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)&#xD;

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219)&#xD;

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:110)&#xD;

at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)&#xD;

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:165)&#xD;

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)&#xD;

at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:1025)&#xD;

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)&#xD;

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:452)&#xD;

at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1195)&#xD;

at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:654)&#xD;

at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:319)&#xD;

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)&#xD;

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)&#xD;

at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)&#xD;

at java.lang.Thread.run(Thread.java:748)&#xD;

Caused by: nl.nn.adapterframework.core.PipeRunException: Pipe [iterateDestinations] msgId [testmessage0a000096--143075e0_170622c4153_-7ffe] caught exception: Could not process list of elements using xpath [/destinations/destination]: (RuntimeException) nl.nn.adapterframework.xml.SaxException: [nl.nn.adapterframework.jdbc.FixedQuerySender] [insertVisitSender] cannot getQueryExecutionContext: (JdbcSQLSyntaxErrorException) SQLState [42000], errorCode [42000]: Syntax error in SQL statement "INSERT INTO visit VALUES(?{bookingId}, ?{seq}, ?{hostId}, ?{productId}, ?{startDate}, ?{endDate}, ?{price})[*]" [42000-200]

at nl.nn.adapterframework.pipes.MessageSendingPipe.doPipe(MessageSendingPipe.java:754)&#xD;

at nl.nn.adapterframework.pipes.MessageSendingPipe$$FastClassBySpringCGLIB$$b131b2cb.invoke(&lt;generated&gt;)&#xD;

at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)&#xD;

at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:736)&#xD;

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)&#xD;

at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)&#xD;

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)&#xD;

at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:671)&#xD;

at nl.nn.adapterframework.pipes.ForEachChildElementPipe$$EnhancerBySpringCGLIB$$3bdc129d.doPipe(&lt;generated&gt;)&#xD;

at nl.nn.adapterframework.stream.StreamingPipe.doPipe(StreamingPipe.java:80)&#xD;

at nl.nn.adapterframework.processors.CorePipeProcessor.processPipe(CorePipeProcessor.java:30)&#xD;

at nl.nn.adapterframework.processors.CheckMessageSizePipeProcessor.processPipe(CheckMessageSizePipeProcessor.java:37)&#xD;

at nl.nn.adapterframework.processors.LockerPipeProcessor.processPipe(LockerPipeProcessor.java:58)&#xD;

at nl.nn.adapterframework.processors.TransactionAttributePipeProcessor.processPipe(TransactionAttributePipeProcessor.java:61)&#xD;

at nl.nn.adapterframework.processors.CheckSemaphorePipeProcessor.processPipe(CheckSemaphorePipeProcessor.java:57)&#xD;

at nl.nn.adapterframework.processors.CheckSemaphorePipeProcessor$$FastClassBySpringCGLIB$$3159a29c.invoke(&lt;generated&gt;)&#xD;

at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)&#xD;

at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:736)&#xD;

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)&#xD;

at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:96)&#xD;

at nl.nn.ibistesttool.IbisDebuggerAdvice.debugPipeGetInputFrom(IbisDebuggerAdvice.java:133)&#xD;

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)&#xD;

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)&#xD;

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)&#xD;

at java.lang.reflect.Method.invoke(Method.java:498)&#xD;

at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:627)&#xD;

at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:616)&#xD;

at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:70)&#xD;

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:168)&#xD;

at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)&#xD;

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)&#xD;

at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:671)&#xD;

at nl.nn.adapterframework.processors.CheckSemaphorePipeProcessor$$EnhancerBySpringCGLIB$$3244c027.processPipe(&lt;generated&gt;)&#xD;

at nl.nn.adapterframework.processors.InputOutputPipeProcessor.processPipe(InputOutputPipeProcessor.java:78)&#xD;

at nl.nn.adapterframework.processors.InputOutputPipeProcessor$$FastClassBySpringCGLIB$$feb9be85.invoke(&lt;generated&gt;)&#xD;

at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)&#xD;

at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:736)&#xD;

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)&#xD;

at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:96)&#xD;

at nl.nn.ibistesttool.IbisDebuggerAdvice.debugPipeInputOutputAbort(IbisDebuggerAdvice.java:106)&#xD;

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)&#xD;

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)&#xD;

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)&#xD;

at java.lang.reflect.Method.invoke(Method.java:498)&#xD;

at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:627)&#xD;

at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:616)&#xD;

at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:70)&#xD;

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:168)&#xD;

at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)&#xD;

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)&#xD;

at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:671)&#xD;

at nl.nn.adapterframework.processors.InputOutputPipeProcessor$$EnhancerBySpringCGLIB$$365d4d82.processPipe(&lt;generated&gt;)&#xD;

at nl.nn.adapterframework.processors.MonitoringPipeProcessor.processPipe(MonitoringPipeProcessor.java:78)&#xD;

at nl.nn.adapterframework.processors.CorePipeLineProcessor.processPipeLine(CorePipeLineProcessor.java:162)&#xD;

at nl.nn.adapterframework.processors.CorePipeLineProcessor$$FastClassBySpringCGLIB$$cf1091e5.invoke(&lt;generated&gt;)&#xD;

at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)&#xD;

at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:736)&#xD;

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)&#xD;

at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:96)&#xD;

at nl.nn.ibistesttool.IbisDebuggerAdvice.debugPipeLineInputOutputAbort(IbisDebuggerAdvice.java:88)&#xD;

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)&#xD;

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)&#xD;

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)&#xD;

at java.lang.reflect.Method.invoke(Method.java:498)&#xD;

at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:627)&#xD;

at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:616)&#xD;

at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:70)&#xD;

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:168)&#xD;

at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)&#xD;

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)&#xD;

at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:671)&#xD;

at nl.nn.adapterframework.processors.CorePipeLineProcessor$$EnhancerBySpringCGLIB$$1910e3a2.processPipeLine(&lt;generated&gt;)&#xD;

at nl.nn.adapterframework.processors.LockerPipeLineProcessor.processPipeLine(LockerPipeLineProcessor.java:68)&#xD;

at nl.nn.adapterframework.processors.TransactionAttributePipeLineProcessor.processPipeLine(TransactionAttributePipeLineProcessor.java:49)&#xD;

at nl.nn.adapterframework.processors.CachePipeLineProcessor.processPipeLine(CachePipeLineProcessor.java:35)&#xD;

at nl.nn.adapterframework.processors.InputOutputPipeLineProcessor.processPipeLine(InputOutputPipeLineProcessor.java:48)&#xD;

at nl.nn.adapterframework.core.PipeLine.process(PipeLine.java:539)&#xD;

at nl.nn.adapterframework.core.Adapter.processMessageWithExceptions(Adapter.java:657)&#xD;

... 44 more&#xD;

Caused by: nl.nn.adapterframework.core.SenderException: Could not process list of elements using xpath [/destinations/destination]: (RuntimeException) nl.nn.adapterframework.xml.SaxException: [nl.nn.adapterframework.jdbc.FixedQuerySender] [insertVisitSender] cannot getQueryExecutionContext: (JdbcSQLSyntaxErrorException) SQLState [42000], errorCode [42000]: Syntax error in SQL statement "INSERT INTO visit VALUES(?{bookingId}, ?{seq}, ?{hostId}, ?{productId}, ?{startDate}, ?{endDate}, ?{price})[*]" [42000-200]

at nl.nn.adapterframework.pipes.ForEachChildElementPipe.iterateOverInput(ForEachChildElementPipe.java:366)&#xD;

at nl.nn.adapterframework.pipes.IteratingPipe.sendMessage(IteratingPipe.java:382)&#xD;

at nl.nn.adapterframework.pipes.ForEachChildElementPipe.sendMessage(ForEachChildElementPipe.java:148)&#xD;

at nl.nn.adapterframework.pipes.MessageSendingPipe.doPipe(MessageSendingPipe.java:581)&#xD;

... 121 more&#xD;

Caused by: java.lang.RuntimeException: nl.nn.adapterframework.xml.SaxException: [nl.nn.adapterframework.jdbc.FixedQuerySender] [insertVisitSender] cannot getQueryExecutionContext: (JdbcSQLSyntaxErrorException) SQLState [42000], errorCode [42000]: Syntax error in SQL statement "INSERT INTO visit VALUES(?{bookingId}, ?{seq}, ?{hostId}, ?{productId}, ?{startDate}, ?{endDate}, ?{price})[*]" [42000-200]

at org.apache.xalan.transformer.TransformerImpl.run(TransformerImpl.java:3484)&#xD;

at org.apache.xalan.transformer.TransformerHandlerImpl.endDocument(TransformerHandlerImpl.java:408)&#xD;

at org.xml.sax.helpers.XMLFilterImpl.endDocument(XMLFilterImpl.java:497)&#xD;

at org.xml.sax.helpers.XMLFilterImpl.endDocument(XMLFilterImpl.java:497)&#xD;

at org.apache.xerces.parsers.AbstractSAXParser.endDocument(Unknown Source)&#xD;

at org.apache.xerces.impl.XMLDocumentScannerImpl.endEntity(Unknown Source)&#xD;

at org.apache.xerces.impl.XMLEntityManager.endEntity(Unknown Source)&#xD;

at org.apache.xerces.impl.XMLEntityScanner.load(Unknown Source)&#xD;

at org.apache.xerces.impl.XMLEntityScanner.skipSpaces(Unknown Source)&#xD;

at org.apache.xerces.impl.XMLDocumentScannerImpl$TrailingMiscDispatcher.dispatch(Unknown Source)&#xD;

at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)&#xD;

at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)&#xD;

at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)&#xD;

at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)&#xD;

at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)&#xD;

at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)&#xD;

at nl.nn.adapterframework.util.XmlUtils.parseXml(XmlUtils.java:526)&#xD;

at nl.nn.adapterframework.pipes.ForEachChildElementPipe.iterateOverInput(ForEachChildElementPipe.java:360)&#xD;

... 124 more</details>

<booking id="1">

<travelerId>2</travelerId>

<price>500.00</price>

<fee>100.00</fee>

<destination hostId="3" productId="4">

&lt;price&gt;400.00&lt;/price&gt;&#xD;

&lt;startDate&gt;2018-12-27&lt;/startDate&gt;&#xD;

&lt;endDate&gt;2019-01-02&lt;/endDate&gt;&#xD;

</destination>

</booking>

Environment:

  • Application server: Tomcat, executed through the Frank!Runner.
  • Browser: Firefox
  • IAF Version: 7.5-RC1

GUI 3.0 stuck on error page when no error is present

Describe the bug
When no error is present, but you're on the gui 3.0 error page, it reloads instead of redirects to the adapters page

Category

  • Frank Console

To Reproduce
Steps to reproduce the behavior:
Have a working Frank! and go to .../iaf/gui/#!/error

Expected behavior
Redirect to .../iaf/gui/#!/status page.

Screenshots
N/A

Environment:
N/A

Additional context
N/A

Feature Request: Configurable label in Ladybug

Is your feature request related to a problem? Please describe.
If I have a pipeline that serves as central entrypoint to route messages to different adapters, I get a lot of entries in the Ladybug that have the same Pipe. From another team I got the request to have a way to differentiate requests with some label determined from the content of the input message.

Describe the solution you'd like
An additional column that can be filled with a value from the input message using XPath. This way there is freedom to put in some functional description and allows searching on specific messages.

Describe alternatives you've considered
N/A

Additional context
N/A

GUI 3.0 freezing on Firefox

Describe the bug
At seemingly random moments, the GUI 3.0 interface seems to get stuck while loading. This is paired with an infinitely looping loading animation in the top-right corner of the interface, and all tab items appearing slightly different, expanded and unclickable (see screenshot).

The link to GUI 1.2 does work; most of the console's functionality seems to work here, too. However, loading the Ladybug after experiencing this freeze causes it too to never stop loading. This might suggest that the freeze could be related to some part of the Ladybug's loading process?

Category

  • Frank Console

To Reproduce
Steps to reproduce the behavior:

  1. Go to any Frank's console in Firefox
  2. It either loads correctly or doesn't

Screenshots
afbeelding

Environment:

  • Tomcat, WebSphere
  • Firefox
  • F!F 7.6-20200224.113724

Additional context
N/A

Must be possible to generate WSDL from WsdlValidating pipeline.

   <inputValidator
            className="nl.nn.adapterframework.pipes.WsdlXmlValidator"
            wsdl="/GetPolicyAndPartyDetails/wsdl/PolicyNL_GPAPD_Concrete_20140502_API.wsdl"
            soapBody="GetPolicyDetailsForCustomer_Request"
            schemaLocation=
                "
                http://nn.nl/XSD/Generic/MessageHeader/1 schema1
                http://api.nn.nl/GetPolicyDetailsForCustomer schema2
                "
            addNamespaceToSchema="true"
            throwException="true"
        />
        <outputValidator
            className="nl.nn.adapterframework.pipes.WsdlXmlValidator"
            wsdl="/GetPolicyAndPartyDetails/wsdl/PolicyNL_GPAPD_Concrete_20140502_API.wsdl"
            soapBody="GetPolicyDetailsForCustomer_Response"
            schemaLocation=
                "
                http://nn.nl/XSD/Generic/MessageHeader/1 schema1
                http://api.nn.nl/GetPolicyDetailsForCustomer schema2
                "
            addNamespaceToSchema="true"
            throwException="true"
        />

ErrorStorage ignores "Show # entries"

Describe the bug
When displaying the ErrorStorage of a receiver, the setting for "Show # entries" is ignored. If there are thousands of messages the page waits to load all of them (~35s for 3800 records).

Category

  • Frank Console
  • Performance

To Reproduce
Steps to reproduce the behavior:

  1. Have an adapter with several thousand errors in the ErrorStorage
  2. Open the ErrorStorage for the adapter
  3. Wait for the data to load

Expected behavior
The setting "Show # entries" is respected and only that number of entries are loaded.

Screenshots
N/A

Environment:

  • Application server (f.e. Tomcat/websphere/JBOSS/Jetty): Websphere
  • Browser [e.g. chrome, safari]: Chrome
  • IAF Version [e.g. 7.4]: 7.5-RC1

Additional context
N/A

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.