My guess is that the error is happening on the server side and being raised at https://github.com/openjdk/jdk/blob/master/src/java.base/share/classes/java/util/Base64.java#L713. If there is a stack trace in the server log, then that would help pinpoint the issue. I’m guessing here, but it could be the following call:
(client) TableOperationsImpl.doFateOperation -> (client) TableOperationsImpl.beginFateOperation -> (manager) FateServiceHandler.beginFateOperation -> (manager) FateServiceHandler.authenticate -> (manager) SecurityOperation.authenticateUser -> (manager) SecurityOperations.authenticate -> (manager) Credentials.fromThrift -> … In your code, how is client created? Is it cached, shared, etc? Does the framework that you are using create a new instance of your class and maybe the AccumuloClient is not fully initialized? From: Christopher <ctubb...@apache.org> Sent: Sunday, April 21, 2024 4:56 PM To: accumulo-user <user@accumulo.apache.org> Subject: Re: Issue with TableOperations I don't see this error message anywhere in Accumulo code. It looks like it might be coming from d4m? On Sat, Apr 20, 2024, 17:07 Geoffry Roberts <geoffry.robe...@gmail.com <mailto:geoffry.robe...@gmail.com> > wrote: v2.1.2 On Sat, 20 Apr 2024 at 13:11, Dave Marion <dlmar...@comcast.net <mailto:dlmar...@comcast.net> > wrote: What version of Accumulo are you using? On Apr 20, 2024 12:16 PM, Geoffry Roberts <geoffry.robe...@gmail.com <mailto:geoffry.robe...@gmail.com> > wrote: I am setting up a microservice that accesses accumulo. It's a specialized thing of limited scope. I do need to get it to create tables (Code is below.). * Java 17 * SpringBoot running Jetty * Postman In the below code bit, the tableName is a string "patient״. When I run it, I get an error message: org.apache.accumulo.core.client.AccumuloException: Input byte[] should at least have 2 bytes for base64 bytes at org.apache.accumulo.core.clientImpl.TableOperationsImpl.doFateOperation(TableOperationsImpl.java:413) at org.apache.accumulo.core.clientImpl.TableOperationsImpl.doFateOperation(TableOperationsImpl.java:365) at org.apache.accumulo.core.clientImpl.TableOperationsImpl.doTableFateOperation(TableOperationsImpl.java:1803) at org.apache.accumulo.core.clientImpl.TableOperationsImpl.create(TableOperationsImpl.java:254) at org.apache.accumulo.core.clientImpl.TableOperationsImpl.create(TableOperationsImpl.java:226) at d4m.acc.microservice.D4MACCController.createTable(D4MACCController.java:58) Q: Why it seems all is quite correct? The log message is correct. The return value is correct. @PostMapping("/create") public String createTable(@RequestBody String tableName) { TableOperations ops = client.tableOperations(); try { LOG.info("create=" + tableName); ops.create(tableName); } catch (AccumuloException | AccumuloSecurityException | TableExistsException e) { e.printStackTrace(); } return tableName; }-- Thanks My software always runs perfectly in the end. If it is not perfect, it is not yet the end. Geoffry Roberts -- My software always runs perfectly in the end. If it is not perfect, it is not yet the end. Geoffry Roberts